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/