I think the title explains my question pretty well, I'm currently working on a small framework for my personal needs, and thought about building it with ARC (if thats possible at all?), and use it in old projects that were built before ARC?
问题:
回答1:
Yes, with one caveat: if you have iOS 4.x as a deployment target, a supplemental library is necessary to deal with ARC-compiled code on the older runtime. For an application built using ARC, this is packaged in with the application. This is not included if you are using an ARC-compiled library in a non-ARC application.
You can manually link this library into your non-ARC application to avoid runtime problems on the older OS versions by adding -fobjc-arc
to your Other Linker Flags for the application.
See this Apple Developer Forums thread for some more discussion on this.
回答2:
You can link against the glue library provided by Apple (as Brad has said in his answer above). However, the __weak variable qualifier is not compatible with operating systems below 4.3 (As mentioned here: iOS 5 Best Practice (Release/retain?) in a comment by sudo).
回答3:
Should be fine. The library is already compiled, so ARC/NonARC shouldn't matter anymore.