Я работаю над более совершенным CLLocationManager
макетами, чем тот, который предоставляется Xcode, и я столкнулся с странной проблемой. Я подклассы как CLLocationManager
и CLLocation
:Подклассы CLLocation на OSX
// foobar.h
@interface MyLocation : CLLocation
@end
@interface MyLocationManager : CLLocationManager
@end
// foobar.m
@implementation MyLocation
@end
@implementation MyLocationManager
@end
Теперь, если я построить проект для IOS все нормально, но когда я делаю то же самое для OS X, я получаю эту ошибку на увязывание:
Undefined symbols for architecture x86_64:
"_OBJC_METACLASS_$_CLLocation", referenced from:
_OBJC_METACLASS_$_MyLocation in AppDelegate.o
"_OBJC_METACLASS_$_CLLocationManager", referenced from:
_OBJC_METACLASS_$_MyLocationManager in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
В отличие от этого вопроса Error on CLLocation subclassing, у меня есть соответствующие фреймворки, добавленные в проект, и, как я уже сказал, эта установка безупречно работает для iOS, а не для OSX.
FWIW, я использую Xcode 4.6.3 с iOS SDK 6.1 и OSX SDK 10.8, создавая для x86_64 с LLVM 4.2 по умолчанию.
Любые подсказки, почему это происходит?
Я пробовал то же самое с Xcode5 DP3 и OSX SDK 10.9, разница в том, что он компилируется, но сбрасывается сразу после запуска с помощью этого: 'dyld: Symbol not found: _OBJC_METACLASS _ $ _ CLLocation'. Это становится интересным: P – Lvsti