Property
-
Swift Property - 3Programming/Swift(iOS) 2021. 4. 1. 23:42
프로퍼티에는 감시자라는게 있습니다. 값이 변경될 때, 특정 행동들을 수행하도록 만들 수 있습니다. 저장 프로퍼티에 한해서만 사용을 할 수 있고, willSet / didSet이 있습니다. - willSet 값이 변경되지 직전에 호출 속성이 변경될 것이라는 것을 외부에 알릴때 많이 사용 -didSet 값 변경 후에 호출 된다. 값의 변경 이후에 추가적으로 수행해야되는 작업이 있을 경우 이와는 별도로 defer block도 있습니다. 함수가 끝나고 난 이후에 무조건 실행되는 block입니다... struct User { var email:String { didSet { //만약 emil의 주소가 올바른지 체크하고 싶다.. //예를 들어 이메일의 입력이 ". hello@gmail.com "이다.. //공백 제..
-
Swift Property - 2Programming/Swift(iOS) 2021. 4. 1. 23:11
그렇다면 프로퍼티에서 적합하지 않은건 무엇일까요? 오래 걸리는 계산등은 프로퍼티에서 적합하지 않습니다. 이미지를 다운받고 , 그리는 코드가 있다고 해봅시다. 이때, 2번 연속 draw()를 호출하게 되면 ...image를 접근할 때마다 다운로드를 받아야합니다. struct UIImage { let url:String } struct Image { let url:String //계산형 프로퍼티는 시간이 오래걸리는 작업에 적합하지 않다. var image:UIImage { print("Donwload image from \(url)") sleep(1) return UIImage(url:url) } //draw를 할때마다 다운로드 받는다...lazy를 이용해서 처음 접근할때만 초기화하고, func draw()..
-
Swift Property - 1Programming/Swift(iOS) 2021. 4. 1. 22:57
프로퍼티는 접근자의 메소드를 자동으로 생성하는 기술이라고 볼 수 있습니다. 예를 들면, positionX의 값을 구하는데 있어서 x의 좌표가 필요하다고 합니다. 그렇다면 아래와 같이 get블럭 안에서 계산된 값을 전달 받을 수 있습니다. 이를 계산 프로퍼티 혹은 연산 프로퍼티라고 합니다. let x:Int = 10 let positonX:Int { get { return x + 10 } } 단순히 var로 된 변수를 선언하는 것은 저장 프로퍼티라고 합니다. swift에서는 상수, 변수냐에 따라서 get, set을 사용하는 범위가 달라집니다. let -> get var -> get, set let은 한번 정해지면 변할 수 없는 값이기 때문에 set을 할 수가 없습니다. 또하느 계산프로퍼티는 어떻게 보면 프..