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 中的函数

Xcode 9.3(Swift 4.1)中的 Codable '没有初始化器'

管理器中的 Xcode 4.1 存档构建不显示图标

从 C 中的其他函数内部释放指针