Проблема области видимости Objective C

У меня есть следующая функция Obj C, которая работает правильно:

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

    return myString;        
 }

Однако, если я добавлю код для обновления UIImage, компиляция завершится ошибкой, а изображение1 неизвестно. image1 действителен: он настроен в .h, синтезирован, и именно эта строка кода работает в методе ниже этой функции. Только когда я перемещаю строку кода до этой функции, она терпит неудачу.

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

Разве image1 не должно распознаваться где-либо в этом конкретном файле .m?


person Alan    schedule 03.03.2009    source источник


Ответы (1)


myfunc здесь является функцией в стиле C, а не методом Objective-C в области видимости вашего класса, поэтому вы не можете видеть переменную экземпляра image1.

вы хотите объявить его как метод:

- (NSString *)myFuncWithParam:(int)x
{
  ...
} 
person Ben Zotto    schedule 03.03.2009