2010-06-01 7 views
1

Je reçois cet avertissement pour le code de la ligne:déclaration implicite de la fonction 'objc_lookUpClass'

Class myClass = objc_lookUpClass([_className UTF8String]); 

J'ajoute

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

Et il ne résout toujours pas le problème

Un autre avertissement que j'obtiens sur cette ligne est: "L'initialisation fait le pointeur d'entier sans moulage"

+0

La « initialisation fait un entier en pointeur sans transtypage » est probablement parce qu'il ne peut pas trouver la déclaration de fonction pour 'objc_lookUpClass', donc il suppose que la fonction est déclarée' extern int objc_lookUpClass (...); ' – dreamlax

Répondre

3

Si vous vérifiez le document, vous verrez que objc_lookUpClass returns an id, pas un Class. Pour supprimer l'avertissement soit vous devez faire un myClassid, ou jeter la valeur de retour à un Class:

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

BTW, il y a NSClassFromString si vous avez un NSString.

Class myClass = NSClassFromString(_className); 
0

il vous suffit d'importer cet en-tête

#import \ < \ objc/runtime.h>

Questions connexes