Mic*_*all 18 iphone objective-c nsdictionary key-value-coding
我想valueForKeyPath在my 上使用NSDictionary,但问题是其中一个键是一个以@符号开头的字符串.我无法控制密钥的命名.
我在尝试创建密钥路径时遇到问题,因为我收到格式异常,即使在尝试转义@符号时也是如此:
这很好用:
[[[dict objectForKey:@"key1"] objectForKey:@"@specialKey"] objectForKey:@"key3"]
Run Code Online (Sandbox Code Playgroud)
但是这些都不起作用:
[dict valueForKeyPath:@"key1.@specialKey.key3"]
[dict valueForKeyPath:@"key1.@@specialKey.key3"]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
谢谢,
麦克风
Tec*_*Zen 13
只是稍微更新这个老问题......
这些原因:
[dict valueForKeyPath:@"key1.@specialKey.key3"]
[dict valueForKeyPath:@"key1.@@specialKey.key3"]
Run Code Online (Sandbox Code Playgroud)
...失败的是,密钥路径中的任何"@"符号都被解释为集合的运算符,如下所示:
[dict valueForKeyPath:@"key1.@sum.key3"] // returns the sum of all 'key3' values
[dict valueForKeyPath:@"key1.@avg.key3"] // returns the average of all 'key3' values
Run Code Online (Sandbox Code Playgroud)
嵌套的键调用:
[[[dict objectForKey:@"key1"] objectForKey:@"@specialKey"] objectForKey:@"key3"]
Run Code Online (Sandbox Code Playgroud)
...工作,因为单个键不作为关键路径处理.
| 归档时间: |
|
| 查看次数: |
21450 次 |
| 最近记录: |