J'ai lu et entendu depuis l'ARC a été le premier a annoncé qu'il était au moment de la compilation chose et serait compatible avec iOS 4. Je l'ai refait mon projet à l'ARC à l'aide de Xcode 4.2 automatique de refactoring, et quand compilé avec la version 5.0 d'iOS SDK, il fonctionne très bien. Cependant, si j'essaie de compiler contre mon iOS 4.2 SDK, il échoue au moment de la liaison, manquant les symboles suivants:
- _objc_retainAutoreleaseReturnValue
- _objc_autoreleaseReturnValue
- _objc_storeStrong
- _objc_retain
- _objc_release
- _objc_retainAutoreleasedReturnValue
J'ai vérifié, et ces symboles sont présents dans la version 5.0, mais pas 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* ...]
Est-ce à dire qu'Apple a menti? Je suppose plutôt que je suis confus et faire quelque chose de mal, mais je ne peux pas comprendre ce que.
C'est avec le GM version de Xcode 4.2 (Build 4C199)