如题 比如 我有一个字典
data = {
id = 1;
name = "\U70c2\U756a\U8304\Uff5c2015\U5e74\U5ea6\U6700\U4f73\U7535\U5f71";
};
我如何判断它有name键名 有可能返回的是
data = {
id = 1;
};
此时 我直接用data[@"name"]就崩溃了 如何解决 谢谢
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
楼上几位的方法都能判断字典里是否有特定的 key 值,不过楼主的这种写法其实和3楼所说的是一样的,并不会造成崩溃.
allKeys方法返回key数组,然后判断
楼上正解,没有直接的方法可以判断。一般的方法,和楼上的原理类似。
不同意楼上两位, allKeys 是个数组, 从一个数组里找一个元素效率是很低的。而 NSDictionray 是有个 objectForKey 方法的,如果有相应的 key 就会返回对应的元素, 如果没有就会返回 nil。
将这个字典的所有key遍历呗。
假如字典你想查看字典a中是否有个key叫b则这样说
for(int i=0;i《a。allkey。count;i++)
{
}
这样不会crash的,如果key存在,则能取到值,否则为nil。
正常情况下
dict[@"keyName"]是不会crash的,key不存在返回值为nil.能够crash应该是dict不是dictionary类型 或者你取值或者赋值的对象不支持为nil.
P.S.
dict[@"keyName"]这个语法糖实际调用就是[dict objectForKey:@"keyName"]方法