xcode 4.1 中的释放函数
Posted
技术标签:
【中文标题】xcode 4.1 中的释放函数【英文标题】:deallocation function in xcode 4.1 【发布时间】:2011-10-20 13:11:25 【问题描述】:我最近一直在尝试学习用于 iphone 开发的 Objective C,但是我买了一本关于 iPhone 3 开发的书,所以它已经过时了。我注意到书中示例和 xCode 默认代码的代码布局存在差异。 我的问题与 -void (dealloc) 函数有关。
我已经创建了一个基本的“基于视图”的项目,在我的书中它指出在我的 viewController.m 文件中有一个“dealloc”函数但是在 xcode 4.1 中 viewController.m 中没有 dealloc 函数唯一的 dealloc 函数在 AppDelegate.m 文件中找到 id。
所以我的问题是,最后:
如果我在 view controller.m 中合成一个实例变量
@synthesize nameField;
然后我是否要在 viewController.m 中创建一个 dealloc 函数来像这样释放该变量?
- (void) dealloc
[nameField release];
[numberField release];
[super dealloc];
【问题讨论】:
【参考方案1】:这取决于您为 nameField 声明的属性是分配、保留还是复制(您应该查看内存管理指南以了解这一点)。基本上,如果属性是保留或复制,那么您应该在 dealloc 方法中释放它。否则你不应该这样做。
【讨论】:
是的,我使用的属性是retain,我现在明白了如何以及为什么要使用release,我只是被delegate.m文件中的同一个函数“dealloc”抛出,但是在做了更多之后示例 我现在可以看到我在 viewcontroller 中声明的任何内容都与委托没有直接关系,因此必须在 viewcontroller.m 文件中进行管理。感谢您的洞察力!以上是关于xcode 4.1 中的释放函数的主要内容,如果未能解决你的问题,请参考以下文章
在安装 Xcode 10 GM 之前卸载 Xcode 9.4.1?
通过 Entity Framework 4.1 中的用户定义函数进行热切加载
datepicker 不是 bootstrap 4.1 中的函数