본문 바로가기
Swift

[iOS] About 램 모델클래스 > 구조체

by dsungc 2024. 8. 8.

이번 글에서는 램으로 저장한 정보를 구조체 형태로 가져오는 방법에 대해 알아보려합니다!!

 

아마 램을 이용하여 데이터를 저장하는 것은 너무나 익숙할텐데, 그럼 그 반대는..?

단일 정보를 가져오는 것 역시 익숙한데.. 전체를 그대로 구조체 형태로 가져오고 싶으면..?

 

위의 두 가지에 대한 궁금증으로 이 방법을 찾아보게 되었답니다 😀

 

우선 제가 프로젝트에서 구현한 코드 부터 보여드리면

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