Sort NSArray with sortedArrayUsingComparator

后端 未结 5 614
生来不讨喜
生来不讨喜 2020-12-14 01:36

In Objective-C I can sort an NSArray using this statement:

NSArray *sortedArray = [persons sortedArrayUsingComparator:^NSComparison         


        
5条回答
  •  隐瞒了意图╮
    2020-12-14 02:06

    You can either use Swift's built in sort functions or, since a Swift array is bridged to NSArray you can call sortedArrayUsingComparator from swift directly.

    Using Swift's sorted function:

    var sortedArray = sorted(persons) {
        (obj1, obj2) in
    
        // The downcast to Person is only needed if persons is an NSArray or a Swift Array of AnyObjects
        let p1 = obj1 as Person
        let p2 = obj2 as Person
        return p1.name < p2.name
    }
    

    Or, using NSArray's sortedArrayUsingComparator:

    var sortedArray = persons.sortedArrayUsingComparator {
        (obj1, obj2) -> NSComparisonResult in
    
        let p1 = obj1 as Person
        let p2 = obj2 as Person
        let result = p1.name.compare(p2.name)
        return result
    }
    

提交回复
热议问题