У меня есть проект без ARC, в котором используется статическая библиотека с поддержкой ARC. Это поддерживаемый сценарий, так что все работает нормально. Это происходит до тех пор, пока я не запускаю код на устройстве 4.x, включая Simulator. В этом случае код взрывается со следующей ошибкой компоновщика:
dyld: lazy symbol binding failed: Symbol not found: _objc_storeStrong
Referenced from: /Users/zoul/Library/Application Support/iPhone Simulator/4.3.2/Applications/…/Demo.app/Demo
Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation
Это происходит, как только какой-либо код с поддержкой ARC пытается вызвать функцию _objc_storeStrong
, например в методе init
(self = [super init]
). Преобразование основного проекта в ARC решает проблему, но я хотел бы знать, есть ли другие решения.