加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

排序 – 使用sortedArrayUsingComparator对NSArray进行排序

发布时间:2020-12-14 05:53:24 所属栏目:百科 来源:网络整理
导读:在Objective-C中,我可以使用以下语句对NSArray进行排序: NSArray *sortedArray = [persons sortedArrayUsingComparator:^NSComparisonResult(Person *p1,Person *p2) { return [p1.name compare:p2.name];}]; 我无法用Swift再现同样的声明。我发现我使用的
在Objective-C中,我可以使用以下语句对NSArray进行排序:
NSArray *sortedArray = [persons sortedArrayUsingComparator:^NSComparisonResult(Person *p1,Person *p2) {
    return [p1.name compare:p2.name];
}];

我无法用Swift再现同样的声明。我发现我使用的是Array。

您可以使用 Swift’s built in sort functions,或者由于将Swift阵列桥接到NSArray,您可以直接从swift调用sortedArrayUsingComparator。

使用Swift的排序功能:

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
}

或者,使用NSArray的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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读