이번 게시글에서는 제목처럼 ObservedResults, ObservedRealmObject에 대해 공부한 것을 주저리 주저리 풀어보려고 합니다.
SwiftUI와 Realm을 활용하여 출시앱을 만드려고 하다보니 이 두 property wrapper에대해 알아야만 했는데요..!
ObservedResults
쉽게 이야기하면 복수객체에 대해 접근하여 정보를 핸들링할 때, 이 프로퍼티를 사용하면 됩니다.
..?
복수객체...?

램스튜디오에 들어갔을 때 하나의 클래스명 안에 구성되어있는 요소들이 하나씩 있을텐데요, 이 요소전부 다를 가져올 때 ObservedResults라는 프로퍼티래퍼를 사용합니다.
다시말해, Realm 객체 모음을 관찰하는 것이고, 더 쉽게 생각하면 저기 보이는 모든 행을 다 가져와서 쓸거야~ 라는 거에요.
보통 개체의 목록이나 컬렉션을 표시하거나 관리할 때 사용됩니다.(ForEach, List 등)
ObservedRealmObject
그렇다면 이 아이는..?
.
.
그렇습니다. 단일객체의 속성을 관찰하고 표시하거나 수정할 때 사용됩니다.
위의 표에서 하나의 행이 되겠죠?
우리가 만약 category명을 바꾸고 싶다면? ObservedRealmObject를 사용해서 category명에 접근해야하는 겁니다!!
사실 이 두 가지는 개념의 내용이 대단히 어렵다기보다 처음 맞이했을 때, observedObject, stateObject와 맞물려서 개념들이 계속 헷갈리더라구요.. 물론 정리해두고 계속 코드 구현 하다보니 지금은 뭐 쉽게 구분하게되었습니다. 😁😁
그렇다면.. 공통점은?
두 가지 모두 데이터의 변경 사항을 관찰합니다.
또한, Realm데이터가 변경될 때 자동으로 UI업데이트를 활성화합니다.
UIKit에서 사용하던 reloadData() 등이 생각나는데, 이러한 기능이 SwiftUI에선 필요 없다는 거죠~
아주 편리한 이 두 가지의 property Wrapper를 입맛에 맞게 사용하면 쉽게 데이터가 바뀌는 모습을
화면으로 구현할 수 있더라구요!!
처음 이 두 친구를 봤을 땐, 너무 헷갈렸는데 그런거에 비해 정리한 내용이 많지는 않네요..ㅎㅎ(머쓱)
아무튼 이번 글은 여기까지~
.
.
.
.

'Swift' 카테고리의 다른 글
[iOS] About 메모리 구조 (1) | 2024.09.21 |
---|---|
[iOS] About StateObject, ObservedObject (1) | 2024.09.18 |
[iOS] About state, binding (0) | 2024.09.08 |
[iOS] About Hot & Cold Observable (1) | 2024.09.03 |
[iOS] About Calendar (1) | 2024.08.28 |