궁금한 내용을 검색해보세요!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서근 개발노트
티스토리에 팔로잉
SWIFTUI/Grammar

SwiftUI : #2 ObservedObject '클릭시 값 증가'

서근
QUOTE THE DAY

-
Written by SeogunSEOGUN

반응형

ObservedObject에 관한 첫 번째 게시글을 보시려면 여기를 클릭해주세요.

 

ObservedObject 

저번 게시물에서는 ObservedObject를 이용해서 Timer를 만들어 봤습니다.  이번에는 다른 예시를 통해서 한번 더 확실하게 배워보도록 하겠습니다. :)

 

저번 timer를 만들 때처럼 새로운 Swift 파일을 만들어주고 'UserSetting'으로 정해줬습니다

//UserSetting View

import Foundation
import SwiftUI
import Combine

class UserSetting: ObservableObject{
    @Published var score: Int = 0
}

score을 정수 0으로 정해줬고, 버튼을 클릭할 때마다 score이 올라가도록 하려고 합니다.

//ContentView

import SwiftUI

struct ContentView: View {
    @ObservedObject var userSetting = UserSetting()
    
    var body: some View {
        VStack {
        Text("\(self.userSetting.score)")
            .font(.largeTitle)
        }
    }
}

이렇게 캔버스에 스코어를 표시하는데 까지는 성공했습니다. 이제 버튼을 만들고 그 버튼을 클릭할 때마다 스코어가 증가할 수 있게 만들어 보겠습니다,

        VStack {
        Text("\(self.userSetting.score)")
            .font(.largeTitle)
            Button("클릭시 Score 증가") {
                self.userSetting.score += 1
            }
        }

실제로 Score value가 변경되면 뷰를 자동으로 업데이트하게 되어서 화면이 구성되게 된 것입니다.

 

이렇게 ObservableObject, ObservedObject, Published에 대해 알아봤습니다.

 

다음 게시물에서는 environment가 무엇인지 알아보도록 하겠습니다.

 

읽어주셔서 감사합니다🤟

 

다음 게시글👇🏻

 

SwiftUI : EnvironmentObject '뷰간에 데이터 공유'

앞 게시물 ObservedObject를 먼저 보고 오시는것을 추천합니다. 이번 게시물에서는 앞에서 썼던 코드를 재사용 합니다. 이번에는 EnvironmentObject에 대해 알아보도록 하겠습니다. EnvironmentObject 앱의 많

seons-dev.tistory.com

참고하면 좋은 게시글👇🏻

 

SwiftUI : @State, @ObservedObject / Struct를 Class로

@State -왜 @State 는 오직 Struct 에서만 작동을 하는가? 앞전 게시물에서 수없이 나왔던 @State 와 Struct에 대해서 알아보겠습니다. SwiftUI에서 가장 기본이되고 많이 사용하는 것들이니 꼭 알아두시길

seons-dev.tistory.com

 


잘못된 내용이 있으면 언제든 피드백 부탁드립니다.


서근


위처럼 이미지 와 함께 댓글을 작성할 수 있습니다.