今天在工作中遇到用ARC开发的App必须最低支持IOS 4.3系统,所以开发时不能用weak关键词只能用unsafe_unretian(weak关键词在IOS5.0后才支持)。
阅览一段代码以后发现有几处用weak关键词的地方,编译后在4.3设备上也没崩溃,于是陷入了深深的思考~~~~
后来搜索了工程发现了一个叫PLWeakCompatibility的库,有了这个就能在IOS4.3下放心使用weak关键词了
下面介绍一下这个库:
PLWeakCompatibility是一组实现了Objective-C运行时函数的stubs,编译器用它来实现__weak关键字。
如果系统实现了真正的运行时函数,PLWeakCompatibility会直接调用。如果没有,PLWeakCompatibility则会调用自己库内的实现。
使用方法:
1.将PLWeakCompatibilityStubs.m加入工程。
2.在target的build settings中找到Other C Flag,加入“-Xclang -fobjc-runtime-has-weak”参数。
3.大功告成。
这是个在github上的开源库: https://github.com/plausiblelabs/PLWeakCompatibility