Я читал и слышал с тех пор, как ARC было впервые объявлено, что это была вещь во время компиляции и будет обратно совместима с iOS 4. Я успешно реорганизовал свой проект, чтобы ARC использует автоматический рефакторинг Xcode 4.2 и при компиляции с SDK iOS 5.0 работает нормально. Однако, если я пытаюсь скомпилировать против моего 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* ...]
Означает ли это, что Apple солгала? Вместо этого я предполагаю, что я сбит с толку и делаю что-то не так, но не могу понять, что именно.
Это относится к выпуску GM Xcode 4.2 (сборка 4C199)