Objective-c setter / getter回调

时间:2010-11-28 01:38:50

标签: objective-c

我有一个属性接口。

我想知道声明回调以达到其实例的setter或getter的方法。 有办法吗?

对不起我的英文和thx的答案和时间。

2 个答案:

答案 0 :(得分:0)

如果您为实例变量声明了@property,然后在实现文件中将其合成,则会自动为您创建getter和setter。 NSMutableArray的示例

@interface ... 
{  
   NSMutableArray *array;
}

@property (nonatomic, retain) NSMutableArray *array;

然后执行:

@implementation ...
@synthesize array;

完成后,您可以使用以下方法获取和设置实例变量值:

Getter:self.array[self array]

Setter:self.array = ...[self setArray:...]

答案 1 :(得分:0)

我不确定我是否正确理解了您的问题,但如果您每次调用setter或getter时都尝试执行某些代码,那么基本上有两种方法可以执行此操作:

1)你可以像这样覆盖合成的吸气剂和/或设定器

部首:

@interface ...
{
   NSString *example;
}
@property (nonatomic, copy) NSString *example;

实现:

@implementation ...
@synthesize aString

-(void)setExample:(NSString *)newExample
{
   if (example != newExample)
   {
      [example autorelease];
      example = [newExample copy];

      // YOUR CODE HERE
   }
}

......同样对于吸气剂。

2)您可以通过KVO观察变量,并在变量发生变化时获得“回调”。当然,这只会在调用setter时运行代码,而不是getter。