Week 2: Assignment
# 클로저를 이용해서 상수/변수 선언하기
-
실제 과제 의도는 모르겠지만 나는 게임을 한 번 시행하면 각 테마의 색깔이 최초에 랜덤으로 지정되고 그 색이 유지되기를 바랬는데
New Game
버튼을 누를 때마다 매번 모든 테마의 색깔이 랜덤으로 바뀌었다...찾아보니computed property
는static
이어도 구조체에 변화가 생길 때마다 매번 다시 연산 되기 때문이었음! -
그래서 함수를 사용하되
stored property
를 선언할 수 있는 방법이 없을까 하고 찾아보다가let variable = { // some closure }()
와 같은 형식으로 선언하면클로저의 리턴값
이 저장됨을 배울 수 있었다
static var themes: [Theme] = {
var themes = [Theme]()
let defaultPairsOfCards = 8
themes.append(createTheme("Vehicles", vehicleEmojis, defaultPairsOfCards))
themes.append(createTheme("Animals", animalEmojis, defaultPairsOfCards))
themes.append(createTheme("Food", foodEmojis, defaultPairsOfCards))
themes.append(createTheme("Hearts", heartEmojis, defaultPairsOfCards))
themes.append(createTheme("Sports", sportsEmojis, defaultPairsOfCards))
themes.append(createTheme("Weather", weatherEmojis, defaultPairsOfCards))
return themes
}()
☀️ TIL
-
얼레벌레 구현하기는 했는데 맞는 방향으로 한 건지는 모르겠다...뷰모델 짱더러움...ㅋㅎㅋㅎㅋㅎ 나름대로 기본 로직과 구조는 모델 안에 모델과 뷰를 연결하는 내용은 뷰 모델에, 상호작용 입력 받는 건 뷰에 할당해서 MVVM을 해본다고 해보긴 했는데 다음 강의를 봐야 어느정도 맞게 했는지 알 수 있을 것 같다
-
그리고 아직 잘 모르겠는건 언제는
static
으로 선언하는 게 낫고 언제는 그냥init
으로 처리하는 게 나은지...?
Author And Source
이 문제에 관하여(Week 2: Assignment), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sunnysideup/Week2-Reading-Assignment저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)