Как я могу использовать class_getProperty в iPad? (Не симулятор) - PullRequest
3 голосов
/ 09 июля 2010

Я использую class_getProperty() в своем приложении для iPad. Я попробовал #import <objc/objc-runtime.h>, который работает на симуляторе iPad.

Но когда я пытаюсь запустить его на своем iPad, Xcode говорит:

objc / objc-runtime.h: нет такого файла или каталога

и

предупреждение: неявное объявление функции 'class_getProperty'.

1 Ответ

8 голосов
/ 09 июля 2010

Обратите внимание, что существуют различия между симулятором и устройством. Симулятор не запускает тот же 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...