我正在浏览由史蒂文森(Scott Stevenson)维护的精彩博客,并且我试图理解一个基本的Objective-C概念,即向代表分配“分配”属性与“保留”属性。请注意,在垃圾回收环境中两者都是相同的。我最关心的是基于非GC的环境(例如:iPhone)。
直接来自Scott的博客:
“ assign关键字将生成一个设置器,该设置器将值直接分配给实例变量,而不是复制或保留该值。这最适合诸如NSInteger和CGFloat之类的原始类型,或不直接拥有的对象(例如委托)。”
您不直接拥有委托对象是什么意思?我通常会保留我的代表,因为如果我不希望他们走入深渊,保留会为我解决。我通常将UITableViewController从其各自的dataSource和委托中分离出来。我也保留该特定对象。我想确保它永远不会消失,所以我的UITableView总是有它的委托。
有人可以进一步解释我错在哪里/为什么错了,以便我能了解在Objective-C 2.0编程中使用委托上的assign属性而不是retain的常见范例吗?
谢谢!