An instance of NSSortDescriptor describes a basis for ordering objects by specifying the property to use to compare the objects, the method to use to compare the properties, and whether the comparison should be ascending or descending. Instances of NSSortDescriptor are immutable.
You construct an instance of NSSortDescriptor by specifying the key path of the property to be compared, the order of the sort (ascending or descending), and (optionally) a selector to use to perform the comparison. The three-argument constructor allows you to specify other comparison selectors such as caseInsensitiveCompare: and localizedCompare:. Sorting raises an exception if the objects to be sorted do not respond to the sort descriptor's comparison selector.
Note: Many of the descriptions of NSSortDescriptor methods refer to "property key". This, briefly, is a string (key) that identifies a property (an attribute or relationship) of an object. You can find a discussion of this terminology in "Object Modeling" in Cocoa Fundamentals Guide and in Key-Value Coding Programming Guide.
There are a number of situations in which you can use sort descriptors, for example:
To sort an array (an instance of NSArray or NSMutableArray—see sortedArrayUsingDescriptors and sortUsingDescriptors)
To directly compare two objects (see compareObject method)
To specify how the elements in a table view should be arranged (see sortDescriptors)
To specify how the elements managed by an array controller should be arranged (see sortDescriptors)
If you are using Core Data, to specify the ordering of objects returned from a fetch request (see sortDescriptors)
event Comparator(obj1 as Variant, obj2 as Variant) as Integer