跳转到内容

WebObjects/Project WONDER/Frameworks/ERExtensions/ERXArrayUtilities

来自维基教科书,开放的书籍,开放的世界

ERXArrayUtilities 提供了用于操作 NSArrays 的便利方法和工具。许多方法是不言自明的。有关完整列表,请参阅 api (http://webobjects.mdimension.com/wonder/api/er/extensions/foundation/ERXArrayUtilities.html).

NSArray 运算符

[编辑 | 编辑源代码]

WebObjects 提供 @sum,@avg 等数组运算符。ERXArrayUtilities 添加了许多其他运算符

SortOperator:为键sort定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@sort.firstName");
myArray.valueForKey("@sort.lastName,firstName");

在第一种情况下,将返回按名字升序排序的 myArray,在第二种情况下,将返回按姓氏然后按名字排序的 myArray。

注册的其他排序运算符有:@sortAsc,@sortDesc,@sortInsensitiveAsc,@sortInsensitiveDesc


FetchSpecOperator:为键fetchSpec定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@fetchSpec.fetchUsers"); 

在这种情况下,将返回使用名为“fetchUsers”的 EOFetchSpecification 筛选和排序的 myArray,该规范必须是第一个对象实体中的基于模型的 fetchspec。


FlattenOperator:为键flatten定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@flatten"); 

在这种情况下,如果 myArray 是 NSArrays(NSArrays 等)的 NSArray,则将返回已扁平化的 myArray。


IsEmptyOperator:为键isEmpty定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@isEmpty"); 


SubarrayWithRangeOperator:为键subarrayWithRange定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@subarrayWithRange.3-20"); 


UniqueOperator:为键unique定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKeyPath("@unique.someOtherPath"); 

在这种情况下,将仅返回 myArray 中唯一的那些对象。


RemoveNullValuesOperator:为键removeNullValues定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKeyPath("@removeNullValues.someOtherPath"); 

在这种情况下,将返回不包含 NSKeyValueCoding.Null 出现的 myArray。


ObjectAtIndexOperator:为键objectAtIndex定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@objectAtIndex.3.firstName"); 


AvgNonNullOperator:为键avgNonNull定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@avgNonNull.revenue"); 

它将对所有值求和并除以非空条目的数量。


ReverseOperator:为键reverse定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@reverse.someMorePath"); 

它将返回与通常获得的结果相反的结果。


MedianOperator:为键median定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@median.someMorePath"); 

它将返回给定键路径处数组元素的中位数。中位数是该值,其中一半的元素高于该值,一半的元素低于该值。因此,需要对数组进行排序,这可能会非常昂贵,具体取决于数组的大小。

华夏公益教科书