Swift/SwiftUI

[Swift UI] ObservableObject, @Published : Data의 변화를 감시하고 알려주자

insub4067 2022. 4. 5. 23:13

SwiftU가 지켜보고 있다가 ObservableObject의 값이 변하면

View에 알려주고 전달한다

감시할 변수에게 @Published 으로 감싸주면

그 변수에 변화가 감지 될때 마다 변화가 생겼다고 알려준단다.

이런식으로 쓴다 class를 만들고 ObservableObject를 상속 받는다

꼭 필히 import Combine해준다

왜냐하면 ObservableObject은 Combine이라는 framework이 제공한다

class 안에 변수를 담을 껀데 @Published로 감싸면 된다

위에 코드는 예시이고 실제 프로젝트에서는 어떻게 작동될까?

Data Struct이다

"landmarkData.json"에서 list를 읽어오고

그걸 landmarks에 담아 준다 그리고 감시한다 그러면 어떻게 쓰일까?

App file에서 이런식으로 알려줘야 한다

modelData 감시할꺼야~

그리고 사용하고자 하는 view에서도 변수 선언해준다 이놈 감시대상인데

변경사항있으면 알림 받을꺼야~