2012-06-15 2 views
-1

В файле .hКак запустить и остановить функцию с использованием геттера и сеттера?

@interface ViewController : UIViewController { 
      @private int intVariable1; 
    } 
    @property (readwrite,assign) int iVar; 

    -(void)Callme; 
    @end 

В .m файл

@implementation ViewController 
@synthesize iVar=intVariable1; 

-(void)Callme 
{ 
     NSLog(@”Callme called”); 
} 

-(void)setIVar:(int)inIVar 
{ 
     intVariable1 = inIVar; 
     [self Callme]; 
} 
@end 

У меня есть реализовать этот код для вызова функции «CallME», когда переменная изменяется состояние, но когда я вызвать функцию setIVar в viewDid загрузить его не работает, любая идея назвать это? Way я называл

[self setIVar:3]; 
+0

Вы пытались явно объявить, что сеттер? – CodaFi

+0

Дорогой сэр, я немного новичок в Objective C и кодировании. Что вы подразумеваете под явным объявлением сеттера? Спасибо! – sam

+0

Ваша реализация отличается от вашего интерфейса. Почему это? – borrrden

ответ

0

Если вы хотите, чтобы обеспечить собственную реализацию для геттер/сеттер функций не используют @synthesize директиву в вашей реализации! Это создаст собственные методы -(void)setIVar:(int)inIVar и -(int)iVar, и они могут скрыть вашу версию. В свою очередь, если вы хотите иметь свойство readwrite, вам также придется реализовать геттер, то есть -(int)iVar.

Просто удалите из вашей реализации линию @synthesize iVar=intVariable1; и поставьте орудие также -(int)iVar.

+0

Они не скроют вашу версию. Фактически, если вы только определяете сеттер или геттер, то вы * должны * синтезировать (при условии чтения записи). Компилятор не знает, как создавать методы, если они уже существуют. – borrrden

+0

: O ... Люди заставляют меня голосовать на мой вопрос, и все же мне интересно, какое лучшее решение для этого! :) Спасибо за ваш ответ, Что вы ответили @borrrden? – sam

+0

, если @borrrden прав, тогда будет какая-то другая проблема с тем, как вы используете методы. Рассмотрите возможность размещения большего количества кода, если есть какие-то более важные элементы. – MrTJ

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