Pet*_*aný 2 objective-c key-value-coding
我有以下代码:
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[defs setObject:[NSNumber numberWithInt:100] forKey:@"test1.test2.test3"];
[defs setValue:[NSNumber numberWithInt:10] forKeyPath:@"test2.test3.test4"];
Run Code Online (Sandbox Code Playgroud)
据我所知,它setObject:forKey:创建了"test1.test2.test3"键和给定数字对象之间的关联.另一方面,setValue:forKeyPath:Key-Value-Coding方法试图找到路径"test2.test3.test4"的对象,但最后,它只是默默地做什么.它甚至没有修改字典!
令我困惑的是,setValue:forKeyPath:它不会引发任何异常,也不会报告任何错误.为什么是这样?这种行为记录在哪里吗?
我找不到这个特定案例的任何文档,抱歉,但我的猜测是:
[defs setValue:x forKeyPath:@"a.b.c"];
Run Code Online (Sandbox Code Playgroud)
正在实现这样的事情:
[[defs objectForKey:@"a"] setValue:x forKeyPath:@"b.c"];
Run Code Online (Sandbox Code Playgroud)
所以objectForKey:返回nil,并且调用的方法nil什么都不做.这可以解释你所描述的行为.
| 归档时间: |
|
| 查看次数: |
3468 次 |
| 最近记录: |