2011-08-16 7 views
0
私はビューに触れたり、このサイトでオーディオを再生し、時にはそれがない場合のUIWebViewは時々私のアプリがクラッシュをこのサイト http://www.xiami.com/song/1024665

のUIWebView負荷のクラッシュ[__NSCFDictionary _isChargeEnabled]

をロードするために使用

、なぜ?
これはhtml5ですか?の解き方? 他のウェブサイトは問題ありません。

クラッシュログは *です - [MPTransportButton _isChargeEnabled]:メッセージすべてのヘルプははるかに高く評価され0x20aa58d0

割り当て解除インスタンスに送信

---更新---

私が作成新しいビューベースプロジェクト、ViewControllerのコードは次のようになります

今回は、クラッシュログは

です
2011-08-16 18:11:25.450 WebTest[1291:707] -[__NSCFDictionary _isChargeEnabled]: unrecognized selector sent to instance 0x1ede0a10 
2011-08-16 18:11:25.462 WebTest[1291:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary _isChargeEnabled]: unrecognized selector sent to instance 0x1ede0a10' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x30ea764f __exceptionPreprocess + 114 
    1 libobjc.A.dylib      0x349c2c5d objc_exception_throw + 24 
    2 CoreFoundation      0x30eab1bf -[NSObject(NSObject) doesNotRecognizeSelector:] + 102 
    3 CoreFoundation      0x30eaa649 ___forwarding___ + 508 
    4 CoreFoundation      0x30e21180 _CF_forwarding_prep_0 + 48 
    5 UIKit        0x30f232bd -[UIWindow warpPoint:] + 200 
    6 UIKit        0x30f0c1d5 _UIApplicationHandleEvent + 2404 
    7 GraphicsServices     0x30790e77 PurpleEventCallback + 666 
    8 CoreFoundation      0x30e7ea97 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 26 
    9 CoreFoundation      0x30e8083f __CFRunLoopDoSource1 + 166 
    10 CoreFoundation      0x30e8160d __CFRunLoopRun + 520 
    11 CoreFoundation      0x30e11ec3 CFRunLoopRunSpecific + 230 
    12 CoreFoundation      0x30e11dcb CFRunLoopRunInMode + 58 
    13 GraphicsServices     0x3079041f GSEventRunModal + 114 
    14 GraphicsServices     0x307904cb GSEventRun + 62 
    15 UIKit        0x30f37d69 -[UIApplication _run] + 404 
    16 UIKit        0x30f35807 UIApplicationMain + 670 
    17 WebTest        0x00013425 main + 48 
    18 WebTest        0x000133f0 start + 40 
) 
terminate called after throwing an instance of 'NSException' 

プロジェクト内のソースコードは、あなたが投稿したコードでは何も悪いことはありませんMPMoviePlayerControllerにこの時間や他の

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [self init]; 
    return self; 
} 

- (id)init 
{ 
    if (self = [super initWithNibName:nil bundle:nil]) 
    { 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIWebView *web = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; 
    [web loadRequest:[NSURLRequest requestWithURL: 
         [NSURL URLWithString:@"http://www.xiami.com/song/1024665"]]]; 
    web.delegate = self; 
    [self.view addSubview:web]; 
    [web release]; 
} 

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    return YES; 
} 
- (void)webViewDidStartLoad:(UIWebView *)webView 
{ 
} 
- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    //[webView stringByEvaluatingJavaScriptFromString:@"window.scrollTo(0, 10);"]; 
} 
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 
{ 
} 
+0

クラッシュログに記載されているように、MPTransportButtonの割り当てが早すぎます。このボタンを初期化/解除するコードを貼り付けることができます。 – tilo

+0

@tilo私のプロジェクトにソースコードを貼り付けて、質問を編集しました – ichoyb

+0

あなたのコードは大丈夫です。どのiOSバージョンをターゲットにしていますか? – tilo

答えて

0

ものを使用していません。

NSZombieは、あなたのコードのどこかに以前に割り当て解除(リリース)されたあとに、あなたのコードのどこか他の場所で何かしたいと言います。

あなたはUIWebViewのデリゲートメソッドのいずれかでそれを行うと思います。

しかし、よりコードが必要です。あなたはどこですかalloc/initMPMoviePlayerController?またはalloc/initMPTransportButtonですか?

+0

私の質問を編集しましたが、今回はソースコードを見ることができます。アプリがクラッシュすることもありますが、時にはクラッシュすることもあります。 – ichoyb