Iphone xcode 4.1中的释放函数

Iphone xcode 4.1中的释放函数,iphone,objective-c,release,dealloc,Iphone,Objective C,Release,Dealloc,我最近一直在尝试学习iphone开发的objective C,但是我买了一本关于iphone 3开发的书,所以它已经过时了。我注意到书中示例和xCode默认代码的代码布局有所不同。 我的问题是关于-void(dealloc)函数 我已经创建了一个基本的“基于视图”项目,在我的书中,它指出在我的viewController.m文件中有一个“dealloc”函数,但是在xcode 4.1中,viewController.m中没有dealloc函数,这是在AppDelegate.m文件中找到的唯一de

我最近一直在尝试学习iphone开发的objective C,但是我买了一本关于iphone 3开发的书,所以它已经过时了。我注意到书中示例和xCode默认代码的代码布局有所不同。 我的问题是关于-void(dealloc)函数

我已经创建了一个基本的“基于视图”项目,在我的书中,它指出在我的viewController.m文件中有一个“dealloc”函数,但是在xcode 4.1中,viewController.m中没有dealloc函数,这是在AppDelegate.m文件中找到的唯一dealloc函数

最后,我的问题是:

如果我在view controller.m中合成一个实例变量

    @synthesize nameField;
然后我是否在viewController.m中创建dealloc函数来释放该变量

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

这取决于您为nameField声明的属性是assign、retain还是copy(您应该查阅《内存管理指南》以了解这一点)。基本上,如果属性是retain或copy,那么应该在dealloc方法中释放它。否则您不应该这样做。

是的,我使用的属性是retain,我现在知道如何以及为什么使用release,我只是被delegate.m文件中的同一个函数“dealloc”抛出,但在做了更多的示例之后,我现在可以看到我在viewcontroller中声明的任何内容都与委托没有直接关系,因此必须在viewcontroller.m文件中进行管理。谢谢你的洞察力!