Условное связывание для @autoreleasepool

Когда я пытаюсь запустить свое приложение в симуляторе iOS 4.3 (Xcode 4.2), я падаю при нажатии @autoreleasepool{}, с:

dyld: lazy symbol binding failed: Symbol not found: _objc_autoreleasePoolPush

Я осмотрелся, и я вижу, что обходным решением является добавление libarclite_iphoneos.a. Есть версия этого для симулятора, также libarclite_iphonesimulator.a.

Мне нужно добавить обе библиотеки в мой проект, чтобы он работал и на симуляторе, и на аппаратном обеспечении. Но что бы я ни собирал, он жалуется, что другая библиотека предназначена для неподдерживаемой архитектуры.

Например, сборка для симулятора:

ld: warning: ignoring file /Developer-4.2/Platforms/iPhoneOS.platform/
Developer/usr/lib/arc/libarclite_iphoneos.a, missing required architecture
i386 in file

Как мне исправить обе эти проблемы одновременно? Или мне пока придерживаться старого синтаксиса NSAutoreleasePool?

10
задан Steven Fisher 17 October 2011 в 19:22
поделиться