如果我读到Mike Ash的"归零弱引用"文章是正确的,那么弱引用就像assign没有ARC的引用一样.但是,如果引用的对象被释放,而不是获得"悬空指针"(意味着指向解除分配的对象的指针),则指针将设置为nil.
这是正确的吗,这是否会在标记的任何财产weak或assign(当ARC处于活动状态时)发生?
如果这是正确的,这将消除很多SIGABRT.
自从ARC首次宣布它是一个编译时的东西并且将向后兼容iOS 4以来,我已经阅读和听过.我已经使用Xcode 4.2的自动重构成功地将我的项目重构为ARC,并且在编译时iOS 5.0 SDK,它运行正常.但是,如果我尝试针对我的iOS 4.2 SDK进行编译,则会在链接时失败,缺少以下符号:
我查了一下,这些符号出现在5.0但不是4.2中:
iPhoneOS5.0.sdk/usr/lib $ find . -type f|xargs nm|grep -i _objc_retain$
00005ed0 T _objc_retain
000061d0 T _objc_retain
iPhoneOS4.2.sdk/usr/lib $ find . -type f|xargs nm|grep -i _objc_retain$
[... *crickets* ...]
Run Code Online (Sandbox Code Playgroud)
这是否意味着苹果撒谎?相反,我认为我很困惑,做错了什么,但我无法弄清楚是什么.
这是Xcode 4.2(Build 4C199)的GM版本