2012-05-26 28 views
0

我开发了一个没有XIB文件的iPhone项目。在那里我也手动创建了UIView对象和一些更多的组件。我在我的deallocviewDidUnload方法中释放这些对象。我的问题是,如果我释放UIView对象的应用程序崩溃,我不知道为什么。任何人都可以帮我解决这个问题吗?发布UIView对象时,我的应用崩溃了

这里是我的代码:

allmessengersview = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] bounds]]; 
allmessengersview.backgroundColor = [UIColor whiteColor]; 
self.view = allmessengersview; 

-(void) dealloc { 
    [allmessengersview release]; 
    [super dealloc]; 
} 

- (void) viewDidUnload { 
    [super viewDidUnload]; 
    [allmessengersview release]; 
    allmessengersview = nil; 
} 
+1

提供创建和释放代码 – Nekto

+0

喜这是创建代码 //创建allmessengers类视图 allmessengersview = [[UIView的页头] initWithFrame:方法[[UIScreen mainScreen]界限]]; allmessengersview.backgroundColor = [UIColor whiteColor]; self.view = allmessengersview;这是dealloc代码 - (void)dealloc {[allmessengersview release]; [super dealloc]; }和视图没有卸载代码 - (void)viewDidUnload { [super viewDidUnload]; [allmessengersview发布]; allmessengersview =无; } –

+0

这是我用于该应用程序的代码 –

回答

0

请写下这段代码在初始化中查看

allmessengersview=[[UIView alloc]init]; 
allmessengersview.frame = CGRect (0,0,320,480); 
allmessengersview.backgroundColor = [UIColor whiteColor]; 
[self.view addsubView: allmessengersview]; 

请写下这段代码的dealloc方法

-(void)dealloc 
{ 
    [allmessengersview release]; 
    [super dealloc]; 
} 
+0

非常感谢您的帮助。我已经在dealloc中编写了代码以及viewdidunload的代码。小怀疑我们是否必须在viewdidunload方法或dealloc方法中释放对象。 –

0

不要在viewDidUnload中释放。 这样,应用程序将在viewDidUnload中释放allmessengersview,稍后尝试在dealloc中第二次释放它,但由于它已经发布,应用程序崩溃。

相关问题