Обратите внимание, что существуют различия между симулятором и устройством. Симулятор не запускает тот же SDK, что и устройство. На самом деле нижние уровни взяты из Mac SDK, что имеет смысл, поскольку выполняется на Mac.
Однако, похоже, есть решение вашей конкретной проблемы. Вам определенно стоит попробовать исправление, описанное Джеффом Ламаршем в этом посте: Устройство против симулятора
Заменить
#import <objc/objc-runtime.h>
К
#import <objc/runtime.h>
#import <objc/message.h>
Затем, чтобы избавиться от предупреждения, вы добавляете эти две строки в заголовочный файл участвующего класса:
#if (TARGET_OS_IPHONE)
- (NSString *)className;
+ (NSString *)className;
#endif
А затем в файле реализации:
#if (TARGET_OS_IPHONE)
- (NSString *)className {
return [NSString stringWithUTF8String:class_getName([self class])];
}
+ (NSString *)className {
return [NSString stringWithUTF8String:class_getName(self)];
}
#endif