Apple iOS 문서의 아래 예제는 허위와 실수로 가득차 있습니다. 코드를 Xcode에 삽입했는지 의심 스럽습니다! Null Values in Using Predicates술어를 사용할 때의 Null 값
그러나 저는 정말 작가가 가난한 독자를 보여주고 싶었는지 알고 싶습니다! 누구나 그 허접한 코드를 수정할 수 있습니까?
감사합니다 !!!
================
널값 비교 술어 즉 (널 (무)를 제외한 널 또는 널 값 NSNull 값과 일치하지 않는 , ($ value == nil)은 $ value가 nil이면 YES를 반환합니다. 다음 예제를 고려하십시오.
NSString *firstName = @"Ben";
NSArray *array = @[ @{ @"lastName" : "Turner" }];
@{ @"firstName" : @"Ben", @"lastName" : @"Ballard",
@"birthday", [NSDate dateWithString:@"1972-03-24 10:45:32
+0600"] } ];
NSPredicate *predicate =
[NSPredicate predicateWithFormat:@"firstName like %@", firstName];
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
NSLog(@"filteredArray: %@", filteredArray);
// Output:
// filteredArray ({birthday = 1972-03-24 10:45:32 +0600; firstName = Ben; lastName = Ballard;})
술어 키 firstName을 값 벤이 들어있는 사전과 일치하지 않습니다,하지만 키 firstName을위한 어떤 값으로 사전과 일치하지 않습니다.
왜 이름으로 필터링 할 때 이름이없는 항목을 제공하겠습니까? – CrimsonChris
모든 firstNames를 가져와서 왜 술어를 적용하는 이유가 무엇입니까? 단순히 술어를 사용하지 않고 모두 가져옵니다. 여전히 firstName nil을 설정하는 대신 술어 thn을 사용하려면 술어 nil을 설정하십시오. NSArray * filteredArray = [배열 filteredArrayUsingPredicate : 없음]; : p –
@ iVishal + @ CrimsonChris : 데모 코드는 Apple의 가이드에서 나온 것으로 술어에 관한 것입니다. 제 원래 질문 안의 링크를 클릭하십시오. –