我有一个属性接口。
我想知道声明回调以达到其实例的setter或getter的方法。 有办法吗?
对不起我的英文和thx的答案和时间。
答案 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。