iphone - 什么是差异。 b/w @property(非原子,分配)和@property(非原子,保留)

标签 iphone objective-c cocoa cocoa-touch xcode

Possible Duplicate:
Are @property(nonatomic)ivar @property(nonatomic,assign)ivar the same or different?

我在许多使用委托(delegate)的类中看到过,这些类使用此关键字分配而不是保留。

我们使用分配而不是保留。

我可以使用分配给 myclass ivar 吗?

如果我确实这样做了,那么它的意义是什么?

最佳答案

您应该分配(=保留计数没有变化)委托(delegate),因为您想避免“保留循环”(想不出更好的词)

获取一个 UITableView 和一个 UIViewController。

当您将 UITableView 添加到 viewController 时,您将保留它。然后为 UITableView 分配一个委托(delegate)和一个数据源(也是一个委托(delegate))。通常这是您的 viewController。

如果 tableview 保留数据源(您的 viewController),则会出现“保留循环”

viewontroller 保留 tableview。
tableview保留viewcontroller

viewcontrollers dealloc(释放tableview的地方)永远不会被调用,因为tableview永远不会释放你的viewcontroller。反之亦然。

因此,两者都不会被释放。这就是为什么 UITableView 只分配数据源和委托(delegate)。你也应该在类里面做同样的事情。

关于iphone - 什么是差异。 b/w @property(非原子,分配)和@property(非原子,保留),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5352743/

相关文章:

objective-c - 我的核心数据数据模型中的实体之一没有被删除

string - 如何从 Mac 中的二进制文件中提取硬编码字符串?

iphone - 在 UIScrollview 中触摸?

iphone - 从 NSDate 获取时区名称

ios - 如何为一个键存储多个值?

ios - 如何将第二个 Controller 中的文本字段(嵌入在表格单元格中)中的字符串传递回第一个 Controller 中的标签(也嵌入在表格单元格中)?

cocoa iPhone 核心数据谓词一对多 fetchrequest

iphone - JSON IPHONE : How to send a JSON request and pull the data from a server?

objective-c - 经验丰富的 Cocoa 程序员在多大程度上依赖 Interface Builder 来连接他们的应用程序?

ios - 应用程序在后台 iOS 中播放音频