如何检查是否存在?:
[[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"]
我想知道这个密钥是否存在。我怎么能这样做?
非常感谢:)
修改: dataArray中包含对象。这些对象是NSDictionaries。
答案 0 :(得分:155)
我认为[dataArray objectAtIndex:indexPathSet.row]
正在返回NSDictionary
,在这种情况下,您只需检查valueForKey
对nil.
的结果
例如:
if ([[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
// The key existed...
}
else {
// No joy...
}
答案 1 :(得分:46)
所以我知道你已经选择了答案,但我发现这在NSDictionary
上作为一个类别非常有用。在这一点上,您开始通过所有这些不同的答案开始提高效率。嗯... 6 of 1 ...
- (BOOL)containsKey: (NSString *)key {
BOOL retVal = 0;
NSArray *allKeys = [self allKeys];
retVal = [allKeys containsObject:key];
return retVal;
}
答案 2 :(得分:34)
检查它是否为零:
if ([[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
// SetEntries exists in this dict
} else {
// No SetEntries in this dict
}
答案 3 :(得分:8)
这也可以使用以下语法使用Objective-C文字:
NSDictionary *dict = @{ @"key1" : @"value1", @"key2" : @"value2" };
if (dict[@"key2"])
NSLog(@"Exists");
else
NSLog(@"Does not exist");
答案 4 :(得分:0)
if ((NSNull *)[[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
// SetEntries exists in this dict
} else {
// No SetEntries in this dict
}
这是正确答案。
答案 5 :(得分:0)
试试这个:
if ([dict objectForKey:@"bla"]) {
// use obj
} else {
// Do something else like create the object
}
答案 6 :(得分:0)
这个做的相同,但代码较少:
if (dataArray[indexPathSet.row][@"SetEntries"] != nil) { /* the key exists */ }
else { /* the key doesn't exist */ }
答案 7 :(得分:0)
检查字典包含任何值。我更喜欢[dic allKeys] .count> 0来检查。
答案 8 :(得分:0)
使用(unsigned long)
选项:
if ( (unsigned long)[[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] ) {
// Key exist;
}else{
// Key not exist;
};