2016-10-12 4 views
0

는 I는 다음의 배열을 갖는다. 주목할 것은,이 경우 내가 신경 쓰는 애트리뷰트는 타입이 NSDate !!!!!! 인 타임 스탬프이다. reduce 함수를 사용하여이 배열 내부의 최대 날짜로 메시지를 가져 오려고합니다. 먼저 메시지 정렬을 제안하지 마십시오. 나는 그것을 피하려고 노력하고있다. 고맙습니다 !엔티티 배열의 내부에서 가장 높은 날짜를 가져옵니다.</p> <pre><code>let messages = (fetchedResultsController.fetchedObjects as! [Message]) </code></pre> <p>본질적으로,이 어레이의 각 요소는 각각의 메시지가 (5 개) 코어 데이터 특성을 갖는 엔티티 메시지이다 :

+0

당신이 가진 개체에만 관심이 있다면 "가장 높은 날짜"를 선택하면 그에 따라 가져 오기 요청을 구성 할 수 있습니다 (정렬 설명자를 추가하고 가져온 항목 수를 하나로 제한). 이미 배열을 가지고 있다면 커스텀 비교기를 가진'max (by :)'가 사용될 수있다. 왜 당신이'reduce'를 사용하기를 원하는지 아는 것은 흥미로울 것입니다. –

+0

안녕하세요, Martin R,이 경우 최대 (by :)를 어떻게 사용합니까? 나는 구문을 이해할 수 없다. 당신의 답변에 감사드립니다. – slimboy

답변

2

당신이 감소 사용하려는 이유를 확실하지,하지만 난이 일을하고 당신이 (스위프트 3 가정) 찾고있는 무슨에 맞는 것이라고 생각 :

let result = messages.max(by: {$0.timeStamp < $1.timeStamp}) 
+0

친구, 정확히 무엇을 찾고있는 당신을 감사하십시오! – slimboy