2011-10-20 18 views
1

我最近一直在尝试为iPhone开发学习客观的C语言,但是我买了一本关于iPhone 3开发的书,所以它已经过时了。我注意到本书示例和xCode默认代码在代码布局上存在差异。 我的问题是使用-void(dealloc)函数。xcode 4.1中的释放函数

我已经创建了一个基本的“基于视图”项目,并在我的书中声明,在我的viewController.m文件中有一个“dealloc”函数,但是在xcode 4.1中,viewController.m中没有dealloc函数,只有dealloc函数在AppDelegate.m文件中找到id。

所以我的问题是,最后:

如果我综合考虑Controller.m或者实例变量

@synthesize nameField; 

我然后创建一个viewController.m的dealloc函数来释放该变量像这样?

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

回答

3

它取决于您为nameField声明的属性是分配,保留还是复制(您应该查看内存管理指南以了解此内容)。基本上,如果属性保留或复制,那么你应该在dealloc方法中释放它。否则你不应该。

+0

是的,我用的属性是retain,现在我明白了如何以及为什么要使用release,我只是在delegate.m文件中引入了相同的函数“dealloc”,但是现在我可以看到更多示例我在viewcontroller中声明的任何内容都与代理没有直接关系,因此必须在viewcontroller.m文件中进行管理。感谢您的见解! – user1005240