iPhone应用程序与admob崩溃?

iPhone应用程序与admob崩溃?,iphone,objective-c,ios,admob,Iphone,Objective C,Ios,Admob,我在两个屏幕的viewdidLoad上安装了一个带有admob的iphone应用程序 我的代码是: 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:AbM

我在两个屏幕的viewdidLoad上安装了一个带有admob的iphone应用程序

我的代码是:

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


有人能告诉我问题出在哪里吗

您的代码中有一个保留/发布问题。您说它在一个视图中工作,但在另一个视图中不工作-这让我相信您正在视图控制器之外存储此实例。发送到解除分配实例的
消息问题是由于您试图使用在弹出此错误之前已从代码中某个内存中删除的变量。您需要确保创建此对象的视图控制器正确地
保留它,以便在您需要再次使用它之前,它不会被解除分配:

GADBannerView *_adMobBannerView;

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

听起来您可能需要重新学习,但要点是,无论您在哪里调用
alloc
,您都在管理该内存,并需要在完成后调用
release
。如果您需要一个变量在
autorelease
d对象的生存期内停留更长的时间,那么您需要创建一个实例变量并
retain
使用ivar属性
@属性(非原子,retain)自己保留对象

检查您是否已为正在使用的对象编写自动释放。我想您可以使用此链接并遵循……>