Я читал и слышал, так как ARC была впервые объявлена, что она была компиляцией и была бы совместима с iOS 4. Она была успешно реорганизована в ARC с использованием автоматического рефакторинга Xcode 4.2, а при компиляции iOS 5.0 SDK, он отлично работает. Однако, если я попытаюсь скомпилировать свой iOS 4.2 SDK, он не работает во время соединения, не хватает следующих символов:
- _objc_retainAutoreleaseReturnValue
- _objc_autoreleaseReturnValue
- _objc_storeStrong
- _objc_retain
- _objc_release
- _objc_retainAutoreleasedReturnValue
Я проверил, и эти символы присутствуют в 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 (Build 4C199)