복붙노트

[SWIFT] 또 다른 옵션을 보유하고 선택 항목의 정렬 배열

SWIFT

또 다른 옵션을 보유하고 선택 항목의 정렬 배열

해결법


  1. 1.귀하의 정렬 기능은 옵션 체인과 전무의 조합을 사용할 수 있습니다 연산자를 병합 :

    귀하의 정렬 기능은 옵션 체인과 전무의 조합을 사용할 수 있습니다 연산자를 병합 :

    sort(&array) {
        (item1, item2) -> Bool in
        let t1 = item1?.dateCompleted ?? NSDate.distantPast() as! NSDate
        let t2 = item2?.dateCompleted ?? NSDate.distantPast() as! NSDate
        return t1.compare(t2) == NSComparisonResult.OrderedAscending
    }
    

    이것은 dateCompleted 값의 항목 및 모든 항목이을 정렬 할 것 "먼 과거"로 취급 전무 dateCompleted있는 항목은 == 전무하며, 그래서 그들은 다른 모든 항목 앞에 정렬됩니다.

    업데이트 스위프트 3 (dateCompleted이 날짜로 가정) :

    array.sort { (item1, item2) -> Bool in
        let t1 = item1?.dateCompleted ?? Date.distantPast
        let t2 = item2?.dateCompleted ?? Date.distantPast
        return t1 < t2
    }
    

  2. 2.스위프트 4. 예를 들어, 사용, 마지막에 Int.max을 옵션 값을 유지하려는 경우 :

    스위프트 4. 예를 들어, 사용, 마지막에 Int.max을 옵션 값을 유지하려는 경우 :

    self.values.sort { (item1, item2) -> Bool in
        let value1 = item1.seconds ?? Int.max
        let value2 = item2.seconds ?? Int.max
        return value1 < value2
    }
    
  3. from https://stackoverflow.com/questions/26191404/sort-an-array-of-optional-items-that-holds-yet-another-optional by cc-by-sa and MIT license