Я запускаю приложение в iPad Simulator (4.3), которое вылетает из-за ошибки отсутствующего символа:
dyld: Symbol not found: _OBJC_CLASS_$_NSMetadataQuery
Referenced from: /Users/Me/Library/Application Support/iPhone Simulator/4.3.2/Applications/B13BE6DF-61B9-4C23-98E7-BEC72330FF19/iPad.app/iPad
Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation
in /Users/Me/Library/Application Support/iPhone Simulator/4.3.2/Applications/B13BE6DF-61B9-4C23-98E7-BEC72330FF19/iPad.app/iPad
В какой момент процесса запуска возникает эта ошибка? Я, кажется, на самом деле не выполняю какого-либо кода - я установил точки останова в обоих местах, где будет создаваться этот класс (который никогда не выполняется, когда версия <5.0) и при методе делегата <code>applicationWillFinishLaunching:
Но сбой происходит до того, как будет достигнута любая из точек.
Я знаю, что основная проблема заключается в том, что класс NSMetadataQuery
был добавлен в iOS 5.0, но я, конечно, хотел бы поддерживать обратную совместимость с более ранними версиями. (Я использую правильные NSClassFromString
звонки.)
У меня есть приложение для iPhone, которое использует NSMetadataQuery
на iOS 5.0, и пропускает его, если работает 4.3 или ниже, и работает должным образом в симуляторе. Таким образом, я не понимаю, почему происходит сбой этой конкретной программы.
Существует ли класс NSMetadataQuery
в версии iPhone 4.2 и 4.3 для iPhone, но не в версии iPad? (А API просто не был доступен до iOS 5.0?)