2011-09-09 15 views
0

私は2つの画面ののviewDidLoad上のAdMobでiPhoneアプリを持っていますiPhoneアプリがadmobでクラッシュしますか?

私のコードは次のとおりです。

AbMob =[[GADBannerView alloc]initWithFrame:CGRectMake(0.0,self.view.frame.size.height-195, 320, 50)]; 

    AbMob.adUnitID = AdMob_ID; 
    AbMob.rootViewController = self; 
    [self.view addSubview:AbMob]; 



    GADRequest *r = [[GADRequest alloc] init]; 
    r.testing = NO; 

    [AbMob loadRequest:r]; 

問題は、このコードでは、一つの画面が、エラーと他の画面上でのクラッシュで正常に動作している

* - [GADOpener didOpen]:割り当て解除されたインスタンスに送信されたメッセージ 0x6074750

誰でも問題の可能性があることを教えてください。

+1

あなたが使用しているオブジェクトのどこかにオートリリースを書いていることを確認してください。 –

+0

私はこのリンクを使用していると思います.......> http://code.google.com/mobile/ads/docs/ios/fundamentals.html – Deepesh

答えて

2

コードのどこかに保持/解放の問題があります。あるビューでは動作しますが、別のビューでは動作しないと言います。これは、このインスタンスをView Controllerの外部に格納していると思います。 message sent to deallocated instanceの問題は、このエラーがポップアップする前に、コードのどこかでメモリから削除された変数を使用しようとしているためです。あなたは再びそれを使用する必要があります前に、それが割り当て解除されないように、このオブジェクトを作成されたビューコントローラが正しくretainそれをINGのしていることを確認する必要があります。

GADBannerView *_adMobBannerView; 

@property(nonatomic,retain) GADBannerView *adMobBannerView; //view controller retains object when using self.adMobBannerView = bla 

あなたがブラッシュアップする必要があるかもしれないようですねmemory management documentationにありますが、その要点はallocと呼ばれる場所であれば、そのメモリを管理しているため、完了したらreleaseに電話する必要があります。 autoreleaseオブジェクトが存在するよりも長い間、変数を保持する必要がある場合は、インスタンス変数を作成し、retainオブジェクトをivarプロパティで自分で作成する必要があります。

関連する問題