2012-05-12 16 views
0

アプリに問題があります。
ホームタブを使用して別のアプリに移動しているときにクラッシュしています。私のアプリにはクラッシュしてメッセージが届きます。他のアプリに移動して戻ったときにアプリがクラッシュする

*** -[UIView convertRect:toView:]: message sent to deallocated instance 0x81e4020 

「インビュー」広告を実装して以来、これが始まりました。
私はそれをdisspapearにするために私のコードで何かする必要がありますか?
私はそれを解決しようとしましたが、成功しませんでした。
これは、広告の私のコードです:

CGRect frame = CGRectMake(0, 480, 320, 50); 
    self.adBanner = [[UIView alloc] initWithFrame:frame]; 
    [self.view convertRect:adBanner.frame toView:nil]; --->This is a line i tried to put... 
    [self.view addSubview:self.adBanner]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdReceived:) name:@"iaAdReceived" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaDefaultAdReceived:) name:@"iaDefaultAdReceived" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdFailed:) name:@"IaAdFailed" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdClicked:) name:@"IaAdClicked" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdWillShow:) name:@"IaAdWillShow" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdDidShow:) name:@"IaAdDidShow" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdWillHide:) name:@"IaAdWillHide" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdDidHide:) name:@"IaAdDidHide" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdWillClose:) name:@"IaAdWillClose" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdDidClose:) name:@"IaAdDidClose" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdWillResize:) name:@"IaAdWillResize" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdDidResize:) name:@"IaAdDidResize" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdWillExpand:) name:@"IaAdWillExpand" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAdDidExpand:) name:@"IaAdDidExpand" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAppShouldSuspend:) name:@"IaAppShouldSuspend" object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iaAppShouldResume:) name:@"IaAppShouldResume" object:nil]; 

    // Display ad 
    if (![InneractiveAd DisplayAd:@"iOS_Test" withType:IaAdType_Banner withRoot:self.adBanner withReload:60 withParams:optionalParams]) 
    { 
     [adBanner removeFromSuperview]; 
    } 
} 

    -(void) viewWillDisappear:(BOOL)animated 
    { 
      [super viewWillDisappear:animated]; 
      [adBanner removeFromSuperview]; 
    } 

- (IBAction)iaAdReceived:(id)sender 
    { 
     // The ad view has finished loading a paid ad 
    } 

    - (IBAction)iaDefaultAdReceived:(id)sender 
    { 
     // The ad view has finished loading a default ad 
    } 

    - (IBAction)iaAdFailed:(id)sender 
    { 
     // The ad view has failed to load an ad 
    } 

    - (IBAction)iaAdClicked:(id)sender 
    { 
     // The ad has been clicked 
    } 

    - (IBAction)iaAdWillShow:(id)sender 
    { 
     // The ad is about to show 
    } 

    - (IBAction)iaAdDidShow:(id)sender 
    { 
     // The ad did show 
    } 

    - (IBAction)iaAdWillHide:(id)sender 
    { 
     // The ad is about to hide 
    } 

    - (IBAction)iaAdDidHide:(id)sender 
    { 
     // The ad did hide 
    } 

    - (IBAction)iaAdWillClose:(id)sender 
    { 
     // The ad is about to close 
    } 

    - (IBAction)iaAdDidClose:(id)sender 
    { 
     // The ad did close 
    } 

    - (IBAction)iaAdWillResize:(id)sender 
    { 
     // The ad is about to resize 
    } 

    - (IBAction)iaAdDidResize:(id)sender 
    { 
     // The ad did resize 
    } 

    - (IBAction)iaAdWillExpand:(id)sender 
    { 
     // The ad is about to expand 
    } 

    - (IBAction)iaAdDidExpand:(id)sender 
    { 
     // The ad did expand 
    } 

    - (IBAction)iaAppShouldSuspend:(id)sender 
    { 
     // The app should suspend (for example, when the ad expands) 
    } 

    - (IBAction)iaAppShouldResume:(id)sender 
    { 
     // The app should resume (for example, when the ad collapses) 
    } 

私はスクリーンショットを添付...
それは何だろうか?

[self.view convertRect:adBanner.frame toView:nil]; 

をあなたのビューはもう存在しません:
おかげで...

Error

+0

突然、コメントにviewWillDisappearを追加すると、すべてがうまくいくように見えます。 - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [adBanner removeFromSuperview]; }非常に奇妙です...しかし、なぜあなたはアイデアを持っていますか? –

+0

既存のアプリケーションをテストして入力したい場合は、アプリをデバイスに実行してから、ヒットコマンドをビルドします。ビルドを停止する。そこからアプリをもう一度起動しようとするとうまくいくかもしれませんが、Xcodeがこれらの状態間を移動するアプリをデバッグするとクラッシュすることがあります。 –

答えて

0

はあなたの問題が実行しているときということです。あなたはこの方法で動作するはずですあなたのappDelegateで

:とにかく

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
/* 
Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 
*/ 
} 

、何がこのラインで達成しようとしたのですか?それはあなたが使っていないCGRectを返すからです。

+0

本当に私はこのラインが問題を解決したと思っていましたが、後で私はそれを見ませんでした。今私はそれを知っているので、viewWillDisappearメソッドは...なぜまだ分からない。別のビューに移動するとバナーを隠したいのですが、アプリがクラッシュしています:\ –

関連する問題