使用自定义对象排序数组

See*_*rex 2 iphone xcode objective-c

我正在尝试对一个数组进行排序,这个数组充满了我编写的类中的对象.我编写的类包含一个NSString本身,作为"名称".所以我想做的是根据对象包含的name属性对数组进行排序.我试过这么简单:

[anArray sortedArrayUsingSelecter: CaseInsensitiveCompare];
Run Code Online (Sandbox Code Playgroud)

但是你可以猜到,它将caseInsensitiveCompare消息发送给对象本身,并且它不会响应那个.

所以我猜我必须让我的对象能够响应caseInsensitiveCompare?不太确定如何编写这样的方法,所以任何指针都很可爱.

谢谢

sch*_*sch 10

您可以使用以下方法sortedArrayUsingComparator:

NSArray *sortedArray = [anArray sortedArrayUsingComparator:^(MyClass *a, MyClass *b) {
    return [a.name caseInsensitiveCompare:b.name];
}];
Run Code Online (Sandbox Code Playgroud)