프로퍼티 감시자


1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 프로퍼티 감시자
    var positionName : String= "NULL"
    {
        // set 되기 직전에 불림
        willSet
        {
            NSLog("ExCPosition positionName willSet 기존값 : %@ / 변경될 값 : %@", positionName!, newValue!);
        }
        // set 된 직후 불림
        didSet
        {
            NSLog("ExCPosition positionName didSet 기존값 : %@ / 변경될 값 : %@", oldValue!, positionName!);
        }
    }
cs


willSet / didSet은 각자 시작점이 다르지만 사실상 들어오는 값은 같다고 보면 될 듯 하다.



실행코드


1
2
3
4
5
var exPosClass : ExCPosition = ExCPosition();
        exPosClass.posX = 5;
        exPosClass.posY = 6;
        exPosClass.positionName = "TESTNAME";
        exPosClass.positionName = "ETERIS";
cs


결과


1
2
3
4
2018-04-05 14:38:48.490181+0900 testSwift[5904:459067] ExCPosition positionName willSet 기존값 : NULL / 변경될 값 : TESTNAME
2018-04-05 14:38:48.490381+0900 testSwift[5904:459067] ExCPosition positionName didSet 기존값 : NULL / 변경될 값 : TESTNAME
2018-04-05 14:38:48.490502+0900 testSwift[5904:459067] ExCPosition positionName willSet 기존값 : TESTNAME / 변경될 값 : ETERIS
2018-04-05 14:38:48.490627+0900 testSwift[5904:459067] ExCPosition positionName didSet 기존값 : TESTNAME / 변경될 값 : ETERIS
cs


'Developer > Swift' 카테고리의 다른 글

클로저 (Closure)  (0) 2018.04.09
return func  (0) 2018.04.09
프로퍼티 감시자  (0) 2018.04.05
연산 프로퍼티  (0) 2018.04.05
Class / Class 상속  (0) 2018.04.05
옵셔널 바인딩 (Optional Binding)  (0) 2018.04.03

이 글을 공유하기


댓글(0)

Designed by CMSFactory.NET