请教一个下面的oc语句在swift 中怎么写?

[复制链接]
37 2
NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2 options:NSNumericSearch];
}];

找了个自动转换的老是报错,请大神指导下
var sortedArray = (keys as NSArray).sortedArray(comparator: {(_ obj1: Any, _ obj2: Any) -> ComparisonResult in
return obj1.compare(obj2 as? String ?? "", options: .numeric, range: nil, locale: .current)
})

举报 使用道具

回复

2 个评论

rongbozhou  新手上路  发表于 2019-2-22 11:17:22  | 显示全部楼层
NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
        return [obj1 compare:obj2 options:NSNumericSearch];
    }];

找了个自动转换的老是报错,请大神指导下
var sortedArray = (keys as NSArray).sortedArray(comparator: {(_ obj1: Any, _ obj2: Any) -> ComparisonResult in
        return obj1.compare(obj2 as? String ?? "", options: .numeric, range: nil, locale: .current)
    })

举报 使用道具

回复
lilei-lil  注册会员  发表于 2019-2-22 12:22:30  | 显示全部楼层
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
}

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表