본문 바로가기

Swift

[iOS] About ObservedResults, ObservedRealmObject

 

이번 게시글에서는 제목처럼 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' 카테고리의 다른 글