跳轉到內容

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"); 

它將返回給定鍵路徑處陣列元素的中位數。中位數是該值,其中一半的元素高於該值,一半的元素低於該值。因此,需要對陣列進行排序,這可能會非常昂貴,具體取決於陣列的大小。

華夏公益教科書