스위프트에서 배열 정렬
들어 Swifty
사람 아래 세계에 대한 목표 이상으로 달성하기 매우 깨끗한 기술이다. User
몇 가지 속성을 가진 예제 커스텀 클래스를 보자.
class User: NSObject {
var id: String?
var name: String?
var email: String?
var createdDate: Date?
}
이제 createdDate
오름차순 및 / 또는 내림차순으로 정렬해야하는 배열이 있습니다. 날짜 비교를위한 함수를 추가하자.
class User: NSObject {
var id: String?
var name: String?
var email: String?
var createdDate: Date?
func checkForOrder(_ otherUser: User, _ order: ComparisonResult) -> Bool {
if let myCreatedDate = self.createdDate, let othersCreatedDate = otherUser.createdDate {
//This line will compare both date with the order that has been passed.
return myCreatedDate.compare(othersCreatedDate) == order
}
return false
}
}
지금이 수 extension
의 Array
를 들어 User
. 간단히 말해서 User
객체 가있는 Array에만 메소드를 추가 할 수 있습니다 .
extension Array where Element: User {
//This method only takes an order type. i.e ComparisonResult.orderedAscending
func sortUserByDate(_ order: ComparisonResult) -> [User] {
let sortedArray = self.sorted { (user1, user2) -> Bool in
return user1.checkForOrder(user2, order)
}
return sortedArray
}
}
오름차순 주문
let sortedArray = someArray.sortUserByDate(.orderedAscending)
내림차순의 사용법
let sortedArray = someArray.sortUserByDate(.orderedAscending)
동일한 주문에 대한 사용법
let sortedArray = someArray.sortUserByDate(.orderedSame)
위의 메소드는 || 유형 인
extension
경우에만 액세스 할 수 있습니다.Array
[User]
Array<User>