willSet didSet


아직 공부중이라 어떻게 사용하는게 Best일진 모르겠지만 암튼 사용 용도에 따라 엄청 쓰임새가 많은 놈 임에는 틀림이 없다.


간단하게 정의하자면 저놈들은 한마디로 


변수를 감시하는 감시자!!


그럼 어떻게 동작하는걸까?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class ObserverTest
{
    var testWill = 0
        {
        willSet
        {
            print("\(testWill) <= 바뀌기 전이야!!")
        }
        
        didSet
        {
            print("\(testWill) <= 값이 바꼈어!!")
        }
    }
    
    var testDid:Int = 0
        {
        didSet
        {
            if testDid > 5
            {
                testDid = 0
            }
            print(testDid)
        }
    }
}
var observer = ObserverTest()
observer.testWill = 10
cs


observer.testWill = 10 이 실행되는 순간 

0 <= 바뀌기 전이야!!

10 <= 값이 바꼈어!!


이렇게 찍힌다.

특정 변수를 모니터링 하고 있다가 값이 바뀌게 되면 

바뀌기 바로 직전에 willSet

바뀐 직후 didSet이 실행되는거다.


특정 변수의 값이 변하는 순간을 체크하고 싶을때 print를 걸어둔다던지

변수의 값이 제한 범위를 넘겼을 경우 다시 초기화 하고 싶다던지..

이런 경우 사용한다면 완전 편리하지 싶다!!!

'개발 > Swift' 카테고리의 다른 글

구문 레이블  (0) 2015.12.22
#available  (0) 2015.12.22
extention  (0) 2015.12.12

1. 3D Max의 System Unit을 미터(m)단위로 맞추고 Display Unit은 사용자 편의에 맞춰 설정


2. 모델링 export 시 Scale Factor를 1로 설정.


3. Unity 임포트 시 Inspector의 Scale Factor를 0.01 => 1로 변경 

(보통 max의 System Unit이 cm 단위로 되있어서 유니티 transform의 unit(m)와 맞춰주기 위해 디폴트로 0.01로 설정되있는듯)

Windows7 환경에서는 아무 문제없이 안드로이드 프로젝트 작업을 진행했었는데

얼마전 개발 환경을 imac으로 바꾼 후 Unity 셋팅을 하다 멘붕이 왔다.



이게 무어야;;;


No platforms found ???


분명히 sdk가 버전별로 설치되어 있음에도 불구하고 안드로이드 빌드 시 저놈의 팝업이 계속 뜨면서

빌드 실패...


구글 신에게 물어봤지만 뾰족한 해결방법을 찾지 못해 하루 반나절을 끙끙 대던 중 어찌저찌해서

해결방법을 알아냈다.


sdk 다운로드 시 최신이 아닌 이전 리비전을 다운 받은 후 다시 최신으로 업그레이드 하는 방법이다;;

[mac 용 sdk r21 down : http://dl.google.com/android/android-sdk_r21-macosx.zip]


1. 기존에 설치된 sdk 폴더 삭제.

2. 위의 링크에서 sdk를 받은 후 적절한 위치(왠지 간단한게 좋을 것 같아 Android/sdk/ 로 생성;)

3. 설치된폴더 > tools > android 를 실행 (Terminal에서 실행시킬 필요 없다. 그냥 클릭 ㄱ ㄱ)

4. sdk 4.0 (API 14)를 설치해본다.

5. unity에서 빌드 테스트

6. 성공


허무하게 해결..





+ Recent posts