gpt4 book ai didi

ios - 包含 NSNull 值的集合的键值编码和集合运算符

转载 作者:行者123 更新时间:2023-11-28 22:40:04 25 4
gpt4 key购买 nike

当使用键值编码在 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 的情况下工作:

If the value of the right side of the key path is nil, it is ignored.

如何使用 keyPath 语句获取数组的最小值和最大值,而不会出现运行时异常,也不必删除之前的 NSNull null

最佳答案

您误解了文档。这个:

If the value of the right side of the key path is nil, it is ignored.

表示如果@min.field 为nil,它将被忽略。但是您正在做的是尝试计算包含 NSNumber 的集合的最小值和最大值。因此可能会使用 decimalValue 方法,但 NSNull 不符合该键的键值。所以你应该继续从集合中删除 NSNull 对象。

关于ios - 包含 NSNull 值的集合的键值编码和集合运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14787844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com