sorted 를 통해 배열을 지정하기

sonny·2024년 9월 5일
0

iOS 파헤치기

목록 보기
8/12
post-thumbnail

내가 이걸 적어놓는 이유는 채팅리스트를 만들다가 날짜를 확인해보니 제일 최근 채팅한 날짜가 맨 아래에 있어서 내림차순으로 변경하는 방법을 찾다가 적는 것이다.

sorted 란?

Swift에서 배열이나 컬렉션의 요소를 정렬할 때 사용하는 메서드다. 기본적으로 오름차순 ( 작은 값 → 큰 값 ) 으로 정렬되는데, 이를 커스터마이징해서 원하는 순서로 바꿀 수가 있다.

sorted의 기본 사용법

sorted()는 배열을 정렬하여 새로운 배열을 반환하는데, 기본적으로는 요소의 크기를 기준으로 오름차순으로 정렬한다.

let numbers = [3, 1, 4, 2, 5]

let sortedNumbers = numbers.sorted()

print(sortedNumbers)  // 출력: [1, 2, 3, 4, 5]

예시를 보면 순서가 뒤죽박죽이어도 sorted 메서드를 통해 올바른 배열로 나타나는 것을 볼 수 있다.

저 정보를 토대로 코드를 작성해보았다.

chatList = chatList.sorted by: { chat1, chat2 in 

return chat1.date > chat2.date

}

세부 설명

chatList = chatList.sorted(by:):

sorted(by:)는 배열을 정렬하는 메서드이다. 이 메서드는 배열의 각 요소를 두 개씩 비교하여 정렬 순서를 결정한다.

여기서 by : 뒤에 클로저가 들어가는데, 이 클로저가 두 개의 요소를 어떻게 비교할지 정의해준다.

{ chat1, chat2 in:

클로저는 두 개의 인자 ( chat1, chat2 )를 받는데, 각각 chatList 배열의 두 요소를 나타낸다. 즉, 이 클로저는 chatList 배열의 두 개의 채팅을 비교하는 역할을 하는 것이다.

return chat1.date > chat2.date:

이 부분이 실제 비교를 수행하는 코드인데, chat1.datechat2.date보다 크면 ( chat1의 날짜가 더 최근이면 ) true를 반환하고, 그렇지 않으면 false를 반환한다. sorted(by:) 는 비교 결과에 따라 배열의 순서를 결정한다.

chat1.date > chat2.date 이기 때문에 더 큰 날짜, 즉 결과적으로 최신 날짜가 먼저 오도록 내림차순으로 정렬하게 되는 것이다.

쏘티드 sorted를 알게 해준 강사님.. 고마워요 재밌어요.

profile
iOS 좋아. swift 좋아.

0개의 댓글