2010-06-01 2 views
1

Я получаю это предупреждение для строки кода:неявное объявление функции «objc_lookUpClass»

Class myClass = objc_lookUpClass([_className UTF8String]); 

Я добавляю

#import <Foundation/NSObjCRuntime.h> 
#import <objc/objc.h> 

И это еще не решить проблему

Еще одно предупреждение, которое я получаю на этой строке: «Инициализация делает указатель из целого без литья»

+0

«инициализация делает указатель из целого числа без броска», вероятно, потому, что он не может найти объявление функции для 'objc_lookUpClass', поэтому предполагается, что функция объявлена' extern int objc_lookUpClass (...); ' – dreamlax

ответ

3

Если вы проверите документ, вы увидите, что objc_lookUpClass returns an id, а не Class. Чтобы подавить предупреждение вам необходимо либо сделать myClassid, или бросить возвращаемое значение Class:

Class myClass = (Class)objc_lookUpClass([_className UTF8String]); 

Кстати, есть NSClassFromString, если у вас есть NSString.

Class myClass = NSClassFromString(_className); 
0

вы просто должны импортировать этот заголовок

#import \ < \ ObjC/runtime.h>

Смежные вопросы