我有这个:

class Movies {
  Name:String
  Date:Int
}

还有一系列的电影.如何按名称的字母顺序对数组排序?我试过:

movieArr = movieArr.sorted{ $0 < $1 }

movieArr = sorted(movieArr)

但这不起作用,因为我没有访问电影的name属性.

推荐答案

在传递给sort的闭包中,比较要排序的属性.如下所示:

movieArr.sorted { $0.name < $1.name }

或者在您要绕过的情况下执行以下操作:

movieArr.sorted { $0.name.lowercased() < $1.name.lowercased() }

104 Typically only types start with an uppercase letter; I'd recommend using 100 and 101, not 102 and 103.


例如,在操场上:

class Movie {
    let name: String
    var date: Int?

    init(_ name: String) {
        self.name = name
    }
}

var movieA = Movie("A")
var movieB = Movie("B")
var movieC = Movie("C")

let movies = [movieB, movieC, movieA]
let sortedMovies = movies.sorted { $0.name < $1.name }
sortedMovies

sortedMovies美元的订单是[movieA, movieB, movieC]美元

Swift5更新

channelsArray = channelsArray.sorted { (channel1, channel2) -> Bool in
            let channelName1 = channel1.name
            let channelName2 = channel2.name
            return (channelName1.localizedCaseInsensitiveCompare(channelName2) == .orderedAscending)

Ios相关问答推荐

在Android和iOS上从后台恢复应用程序后,inappwebview上出现白屏?

从后台线程调用DispatchObject的方法安全吗?

如何在expo-react native中从ios平台中排除包

快速 keys 串更新只有在第二次try 时才起作用

如何在 Android 上的 Flutter 应用中录制内部音频?

错误地提取问题的答案选项

为什么这个 init 被分派到一个内部扩展 init?

SwiftUI 菜单中的内联水平按钮

为什么@FetchRequest 在删除时不更新和重绘视图?

iOS SwiftUI - 从以前的 struct 调用函数

如何将单个按钮传递到自定义 ConfirmationDialog

如何将私钥添加到分发证书?

UICollectionView - 动态单元格高度?

iOS swift从另一个数组中删除一个数组的元素

如何使用 sendAsynchronousRequest:queue:completionHandler:

'无效更新:第 0 节中的无效行数

为所有 UIImageViews 添加圆角

如何更改uitableview删除按钮文本

文件是为存档而构建的,它不是被链接的体系 struct (i386)

如何检测快速touch 或单击的tableView单元格