본문 바로가기
개발,컴퓨터/SwiftPlayGround

[SwiftPlayGround] 앱으로 계속하기 (1)상태 수정하기

by Muyaho~ 2023. 3. 27.

저번 '앱 시작하기'에 이어  '앱으로 계속하기'를 이어서 진행해보았습니다.

 

'앱으로 계속하기' 시작

 

 

 

 

 

 

 

 

 

 

앱 생성의 핵심 원칙, 데이터 분리

 

중요하다고 해서 그냥 넣어 보았습니다.

중요한지 아닌지는 앞으로 공부하면서 알게 될 것 같습니다...

 

 

 

 

 

 

 

 

 

속성 래퍼?? 무슨 말이지??

속성 래퍼라... 가면 갈수록 번역을 거의 구글 번역기를 그냥 돌린 것 마냥 나오고 있습니다. 이럴 땐 검색을 통해 정확한 용어를 파악해봅니다. 해보니 하나하나 다 검색해보기 보다는 일단 해보고 어떻게 바뀌고 돌아가는지 직접 눈으로 확인해 보는게 더 좋은 것 같습니다 하하..

 

구글 검색을 해보니 'Property wrapper' 라고 나옵니다. 

한 마디로 위와 같이 @State를 앞에 추가해주면 isOn의 값이 바뀔때마다 업데이트가 되는 것 같습니다 = 쉬운 변경, 업데이트 및 관리

 

 

 

 

 

 

 

검정 원

 

노랑 원

 

 

else 구문을 추가하는 파트입니다. 추가해주면 Press me 를 눌렀을 때 원이 노랑색과 검정색으로 바뀝니다.

 

여기서  "어떻게 press me 버튼을 눌렀을 때 색깔이 바뀔수 있는 거지?" 라는 의문이 생기실 수 있습니다.(저는 생겼습니다)

코드를 보시면 Button 아래 부분에 toggle()이라는 메소드가 있는데요, 이 메소드는 불리언 값(true 또는 false)을 반대로 바꿔줍니다.

예를 들면 isOn 값이 false 였다면,  "press button"을 눌렀을 때 true로 값이 변경 됩니다.

위의 경우는 처음엔 isOn값이 false 였지만 버튼을 클릭하여 true가 되었고, else 구문에 따라 isOn이 false 이외의 값을 가질 때의 경우인

검정색 원을 나타내게 됩니다.

 

 

 

 

 

 

 

 

 

켬 및 끔 보기에 세부 사항 추가하기

텍스트를 추가하여 어떤 상태가 꺼진 상태고 어떤 상태가 켜진 상태인지 나타낼 수 있습니다.

 

 

 

 

 

 

 

 

 

앞에서는 무슨 말인지 몰랐는데, 이제 조금 알겠다

앞에서 '본문 외부', '상태 속성' 등 이런 말들이 나왔을 때 무슨 말인지 잘 이해가 안되었지만, 한번 해보고 나니 비로소 어느정도 이해가 되는 것 같습니다.(저만 이해 안되었을 수도 있습니다 ^_^)

 

본문 외부에 = body 바깥에 , 상태 속성 추가하고 = @State var isOn 추가하고, 초기 불리언 값을 할당 = isOn에 true 또는 false 값 할당으로 이해가 되는 것 같습니다.

 

다음에는 '조건 제어자 사용하기'를 해보도록 하겠습니다.