다음은 NSMutableArray에서 항목을 정렬하는 데 사용하는 코드입니다. 코드는 오류없이 작동하지만 필터를 적용한 후에는 순서가 변경되지 않습니다. 내가 뭔가 잘못하고 있는거야?정렬 NSMutableArray는 객체 순서를 변경하지 않습니다.
NSArray *filtered = [posts sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
Post *post1 = (Post *)obj1;
Post *post2 = (Post *)obj2;
int p1 = post1.firstPhotoVoters.count + post1.firstPhotoVoters.count;
int p2 = post2.firstPhotoVoters.count + post2.firstPhotoVoters.count;
if (p1 < p2) return (NSComparisonResult)NSOrderedAscending;
if (p1 > p2) return (NSComparisonResult)NSOrderedDescending;
return (NSComparisonResult)NSOrderedSame;
}];
"순서가 바뀌지 않습니다"-'posts' 또는'filtered'의 순서를 확인하고 있습니까? – Kreiri
'NSComparisonResult' 캐스트는 완전히 불필요합니다. 또한,'p1'과'p2' 변수는 셀 수의 두 배만을 사용하기 때문에 이상합니다 (NSUInteger 여야합니다). double 값으로 정렬하는 것은 값으로 정렬하는 것과 같습니다. – Sulthan
'filtered'또는'posts'의 순서를 확인하고 있습니까? 블록이 실행될 때 NSOrderedSame 반환 값이 항상 도달합니까? – CodaFi