수정 - 사용자 의견에 따르면 사용자가 원하는대로 정렬하므로 원하는 위치로 정렬 할 수 있습니다.
귀하의 타임 스탬프 변수는 Optional
, 그래서 당신은 Int
에 nil
, 또는 nil
에 nil
을 비교 할 수있다. 이들을 안전하게 unwrap하고 하나가 nil 인 경우 정렬 순서를 제공하거나 nil-coalescing 연산자를 사용하여 080과 같은 일부 기본 Int로 nil
값을 처리 할 수 있습니다. 두 옵션은 다음과 같습니다.
옵션 랩핑 해제 :
self.ProjectsArray.sort(by: { (project, project2) -> Bool in
if let timestamp1 = project.timestamp, let timestamp2 = project2.timestamp {
return timestamp1.intValue < timestamp2.intValue
} else {
//At least one of your timestamps is nil. You have to decide how to sort here.
return true
}
})
무기 호 - 병합 운영자 :
self.ProjectsArray.sort(by: { (project, project2) -> Bool in
//Treat nil values as 0s and sort accordingly
return (project.timestamp?.intValue ?? 0) < (project2.timestamp?.intValue ?? 0)
})
문제는 선택적 개체를 비교하려고하는 것입니다. 변수 중 하나가'nil '인 경우 변수를 비교하는 방법을 정의해야합니다. –