Apple iOS文档中的以下示例充满了废话和错误,我怀疑他们是否曾将代码放在Xcode中! Null Values in Using Predicates
然而,我真的想知道作家真的想向穷人展示什么! 任何人都可以纠正这些糟糕的代码,使其对主题有意义吗?
感谢!!!
=====
空值 除了null(nil)或NSNull null值(即$ value == nil)如果$ value为nil,则比较谓词与null匹配任何值都不匹配。请考虑以下示例。
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没有值。
答案 0 :(得分:0)
首先是纠正。字面错误:
NSArray *array = @[
@{ @"lastName" : @"Turner" },
@{
@"firstName" : @"Ben",
@"lastName" : @"Ballard",
@"birthday" : [NSDate dateWithString:@"1972-03-24 10:45:32 +0600"]
}
];
我美化了一下。 (我呢?)
它希望显示,与nil
的值进行比较时,总是会计算为NO
,除了比较的常量是一种null(nil
,{ {1}},也可能,但未记录[NSNull null]
)。
此外,这似乎更重要,它想表明,如果你将一种空值与Nil
的值进行比较,它的计算结果为nil
。由于以下问题,必须澄清这一点:
YES