2009-03-03 8 views
0

je la fonction C Obj suivante qui fonctionne correctement:problème de portée C

NSString* myfunc(int x) 
{ 
    NSString *myString = @"MYDATA"; 

    return myString;   
} 

Toutefois, si j'ajouter un code à mettre à jour un UIImage la compilation échoue avec image1 étant inconnu. image1 est valide: il est mis en place dans le .h, synthétisé et cette ligne de code exacte fonctionne dans une méthode en dessous de cette fonction. Ce n'est que lorsque je déplace la ligne de code jusqu'à cette fonction qu'elle échoue.

NSString* myfunc(int x) 
{ 
    NSString *myString = @"MYDATA"; 
    image1.image = [UIImage imageNamed:@"image1.png"]; // fails to compile 
    return myString;   
} 

Est-ce que image1 ne doit pas être reconnu n'importe où dans ce fichier .m particulier?

Répondre

8

myfunc est une fonction de style C ici, pas une méthode Objective-C dans votre portée de classe, donc vous ne pouvez pas voir votre variable d'instance image1.

vous voulez déclarer comme méthode:

- (NSString *)myFuncWithParam:(int)x 
{ 
    ... 
}