属性值更改的iPhone自定义事件
是否可以为属性值更改添加自定义事件?。我需要在属性值更改时触发一个事件 当然。比如说 在.h文件中 NSString*myString 在.m文件中属性值更改的iPhone自定义事件,iphone,ios4,ios5,Iphone,Ios4,Ios5,是否可以为属性值更改添加自定义事件?。我需要在属性值更改时触发一个事件 当然。比如说 在.h文件中 NSString*myString 在.m文件中 - (NSString *)myString { //Custom event return myString; } 这将创建一个可以用作self的属性myString。myString您可以使用KVO(键值观察)或定义自己的setter方法并在其中写入自定义事件?通常,KVO用于观察属性值中的更改 我假设当另一个对象(“被观
- (NSString *)myString {
//Custom event
return myString;
}
这将创建一个可以用作self的属性myString。myString您可以使用KVO(键值观察)或定义自己的setter方法并在其中写入自定义事件?通常,KVO用于观察属性值中的更改
我假设当另一个对象(“被观察对象”)中的属性发生更改时,您希望在一个对象(称为“观察者”)中触发一个事件 您可以通过两种方式执行此操作:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
// your implementation goes here
}
如何使用这两种工具取决于您。考虑到如果遵循基本的COCOA约定规则,KVO将被自动支持,因此不需要额外的努力,并且不需要对合成的SETER进行更改。我不是指setter的自定义实现。我需要在调用setter方法时触发另一个自定义事件。无需对setter方法进行任何更改。Manali建议可以工作,您可以重新实现setter,并在setter内部添加send a message([NSNotificationCenter defaultCenter]postNotificationName)。您可以使用KVO(键值观察)或为setter定义自己的方法,并在其中写入自定义事件?通常,KVO用于观察属性值的变化。我知道自定义设置程序。但是如何实现KVO呢?。
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
// your implementation goes here
}