이번 글에서는 램으로 저장한 정보를 구조체 형태로 가져오는 방법에 대해 알아보려합니다!!
아마 램을 이용하여 데이터를 저장하는 것은 너무나 익숙할텐데, 그럼 그 반대는..?
단일 정보를 가져오는 것 역시 익숙한데.. 전체를 그대로 구조체 형태로 가져오고 싶으면..?
위의 두 가지에 대한 궁금증으로 이 방법을 찾아보게 되었답니다 😀
우선 제가 프로젝트에서 구현한 코드 부터 보여드리면
Realm 모델 클래스 | Response 구조체 |
이렇게 코드를 구현했습니다. (이제와서보니 네이밍이 좀 아쉽네요... 암튼!!😂)
저장을 위한 클래스와 구조체는 다음과 같고, 그럼 이를 변환해주는 메서드 코드도 보여드릴게요!
func convertToResponse(personality: Personality) -> Response {
return Response(
id: personality.imageId,
create: nil,
updated: nil,
width: personality.width,
height: personality.height,
color: nil,
likes: Int(personality.likesNumber) ?? 0,
urls: Images(raw: personality.url, regular: personality.url, small: personality.url),
user: UserInfo(name: "Default Name", profileImage: Medium(medium: "")),
statistics: nil
)
}
이 코드를 좀 분석해보자면 메서드 내의 리턴 값을 Response로 설정해 둔 후, Response에 구현되에 있는 각각의 값을 Peronality의 값으로 채워 넣는다 보시면 됩니다.
서버에서 사용될 고유 식별자인 id 를 personality.imageId로 설정했고,
변환 후 사용하지 않는 요소들의 값을 모두 nil로 설정해 두었습니다.
그 외 옵셔널로 선언되어 있는데 필요한 값들은 모두 초기값을 설정해 주어 Response 를 personality의 값들로 구성해주면~ 끝!!
최초로 시도할 때 아이디어 구상은 쉽지 않았지만 많은 서치 끝에... 한 번 감을 잡으니 그렇게 어렵진 않더라구요!
또한, 이렇게 한 번 구현해 두면 메서드야 뭐 가져다 쓰면 되니 사용하기에도 편리했습니다.
램을 사용할 때 정보량을 한 번에 받아올 일이 있으면 사용하면 좋을 것 같아요!!
아 혹시나 램 정보를 받아와서 그냥 사용하면 되지 않을까? 라는 생각이 들겠지만 저는 페이지 전환시, 데이터를 넘겨주는 과정에서 모두 Response라는 구조체로 받아주고 있기 때문에!!! 이 방법을 활용했답니다 😀 나름의 이유가 있어요~ ㅋㅋㅋㅋㅋ
그럼 이번 글은 여기까지!
화이팅입니다!!!
.
.
.
.
'Swift' 카테고리의 다른 글
[iOS] About Subscribe, Bind, Driver + @ (0) | 2024.08.17 |
---|---|
[iOS] About RxSwift (0) | 2024.08.11 |
[iOS] About Property Wrapper (0) | 2024.08.04 |
[iOS] About FsCalendar - 2 (0) | 2024.07.20 |
[iOS] About SnapKit (2) | 2024.07.17 |