【发布时间】:2013-02-09 20:52:14
【问题描述】:
当使用键值编码在NSArrays 上使用集合运算符(例如@min、@max)时,如果数组中的值之一是NSNull null,则会出现异常。
在使用 valueForKeyPath 之前,我必须删除所有出现的 NSNull null 以使其工作:
NSMutableArray *array = otherArray.mutableCopy;
[array removeObjectIdenticalTo:[NSNull null]];
NSNumber *minValue = [array valueForKeyPath:@"@min.self"];
NSNumber *maxValue = [array valueForKeyPath:@"@max.self"];
但是,根据Apple's Documentation,我的代码应该可以在不删除NSNull null 的情况下工作:
如果键路径右侧的值为nil,则忽略。
如何使用 keyPath 语句获取数组的最小值和最大值,而不会出现运行时异常,也不必删除 NSNull nullbefore?
【问题讨论】:
-
嗯... [NSNull null] 不为零,因此引用的文档不适用。
标签: ios objective-c nsarray key-value key-value-coding