Nice programing

NSDictionary에 확인 키가 있습니다.

nicepro 2020. 10. 22. 22:47
반응형

NSDictionary에 확인 키가 있습니다.


이것이 존재하는지 어떻게 확인할 수 있습니까? :

[[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"]

이 키가 있는지 여부를 알고 싶습니다. 어떻게 할 수 있습니까?

대단히 감사합니다 :)

편집 : dataArray에는 객체가 있습니다. 그리고 이러한 개체는 NSDictionaries입니다.


그 가정 [dataArray objectAtIndex:indexPathSet.row]을 반환 NSDictionary하는 경우, 당신은 단순히의 결과를 확인할 수 있습니다 valueForKey에 대한을nil.

예를 들면 :

if ([[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
    // The key existed...

}
else {
    // No joy...

}

따라서 이미 답변을 선택하신 것을 알고 있지만이 답변이의 카테고리로 유용하다는 것을 알았습니다 NSDictionary. 이 시점에서이 모든 다른 답변으로 효율성을 시작합니다. 으 ... 6/1 ...

- (BOOL)containsKey: (NSString *)key {
     BOOL retVal = 0;
     NSArray *allKeys = [self allKeys];
     retVal = [allKeys containsObject:key];
     return retVal;
}

0인지 확인하십시오.

if ([[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
    // SetEntries exists in this dict
} else {
    // No SetEntries in this dict
}

이것은 또한 다음 구문을 사용하는 Objective-C 리터럴을 사용하여 작동합니다.

NSDictionary *dict = @{ @"key1" : @"value1", @"key2" : @"value2" };
if (dict[@"key2"])
NSLog(@"Exists");
else
NSLog(@"Does not exist");

if ((NSNull *)[[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
    // SetEntries exists in this dict
} else {
    // No SetEntries in this dict
}

정답입니다.


이 시도:

if ([dict objectForKey:@"bla"]) {
   // use obj
} else {
   // Do something else like create the object
}

이것은 동일하지만 코드가 적습니다.

if (dataArray[indexPathSet.row][@"SetEntries"] != nil) { /* the key exists */        } 
else                                                   { /* the key doesn't exist */ }

사전에 값이 있는지 확인하십시오. 확인하려면 [dic allKeys] .count> 0을 선호합니다.


Use the (unsigned long) option:

if ( (unsigned long)[[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] ) {
    // Key exist;
}else{
    // Key not exist;
};

참고URL : https://stackoverflow.com/questions/4635106/check-key-exists-in-nsdictionary

반응형