Returns a new array that lists the receiving array’s elements in ascending order as defined by the comparison function comparator
.
SDKs
- iOS 2.0+
- macOS 10.0+
- tvOS 9.0+
- watchOS 2.0+
Framework
- Foundation
Declaration
func sortedArray(_ comparator: (Any, Any, UnsafeMutableRawPointer?) -> Int, context: UnsafeMutableRawPointer?) -> [Any]
Discussion
The new array contains references to the receiving array’s elements, not copies of them.
The comparison function is used to compare two elements at a time and should return NSOrdered
if the first element is smaller than the second, NSOrdered
if the first element is larger than the second, and NSOrdered
if the elements are equal. Each time the comparison function is called, it’s passed context
as its third argument. This allows the comparison to be based on some outside parameter, such as whether character sorting is case-sensitive or case-insensitive.
Given an
(an array of NSNumber
objects) and a comparison function of this type:
NSInteger intSort(id num1, id num2, void *context)
{
int v1 = [num1 intValue];
int v2 = [num2 intValue];
if (v1 < v2)
return NSOrderedAscending;
else if (v1 > v2)
return NSOrderedDescending;
else
return NSOrderedSame;
}
A sorted version of an
is created in this way:
NSArray *sortedArray; sortedArray = [anArray sortedArrayUsingFunction:intSort context:NULL];