Vol*_*da2 1 key-value-observing ios observer-pattern
我的NSMutableDictionary包含简单键(@“一个”,@“两个”,@“三个”)和复杂键(@“ com.alpha”,@“ com.beta”)。是否可以将观察者用于复杂的键?
观察者使用简单的键可以很好地工作,但是不能使用复杂的键。有什么解决办法?
[self.dict addObserver:self forKeyPath:@"com.alpha" options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew context:nil];
-(IBAction) onChange:(id)sender
{
[self.dict setObject:@"newValue" forKey:@"com.alpha"];
}
-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"____ value had changed");
}
Run Code Online (Sandbox Code Playgroud)
不能将包含点.的键用于键值编码或键值观察。点用于构建键路径,该键路径用于指定要遍历的对象属性序列。(请参阅“键值编码编程指南”中的键和键路径。)
例如,
id x = [object valueForKeyPath:@"com.alpha"];
Run Code Online (Sandbox Code Playgroud)
是相同的
id x = [[object valueForKey:@"com"] valueForKey:@"alpha"];
Run Code Online (Sandbox Code Playgroud)
对于单个键“ com.alpha”,您将不得不将其重命名为“ com_alpha”。
| 归档时间: |
|
| 查看次数: |
800 次 |
| 最近记录: |