Property 3

[iOS] self와 _의 차이

클래스에서 선언한 변수에 접근하는 방법은 크게 2가지이다. self라는 지시어를 통한 접근과 '_'를 통한 접근이다. self라는 지시어를 통한 접근은 클래스에서 접근자를 이용한 접근이다. '_'는 클래스 내부에서 변수에 직접 접근하는 방법이다. 그렇다면 이 둘은 어떻게 다를까? self를 통한 접근은 property로 생성한 접근자를 통한 접근이다. 그래서 property에서 선언한 attribute에 따라 retain을 수행한다. 하지만 '_'를 통한 접근은 메모리 관리에 대한 동작을 수행하지 않는다. 이러한 차이는 ARC를 사용하지 않는 환경에서 유효하다. property의 attribute에 관한 글 참조 : http://goo.gl/vbDbQa

[iOS] @property, @synthesize, @dynamic

@property 클래스 내의 멤버 변수에 대하여 접근자를 생성한다. @property를 사용할 경우, 추가로 attribute를 부여할 수 있다. attribute들은 아래와 같다. '*'로 표시된 attribute는 선언하지 않아도 기본적으로 적용되는 attribute들이다. getter= : 접근자 중 getter의 메소드 이름을 정의한다. setter= : 접근자 중 setter의 메소드 이름을 정의한다. readwrite * : getter/setter를 모두 만든다. Mutually exclusive로 readwrite를 한다. readonly : 오직 getter만 생성한다. 해당 property에 값을 할당하려고 하면 컴파일 오류가 발생한다. assign * : setter를 통해 간단한 ..

[Swift] Swift Study 2주차 요약 (Closure, Collection, Property, Initialization, Observer ... etc)

Function parameters함수의 param들은 기본적으로 다 상수다. 그러므로 수정이 불가능하다. 함수 내에서 param을 수정하기 위해선 inout param으로 선언하면 되는데, 함수 선언부에서 param앞에 '&'를 표시해주면 된다. Function typefunction type을 다른 function의 param의 타입으로 사용할 수 있다. 함수의 타입이 들어가는 부분에 '(Int, Int) -> Int'와 같이 일반 함수 선언 부에서 함수명의 뒷부분을 적어주면 된다. function type을 사용해서 함수를 param으로 사용할 수 있다. ex)func addTwoInts(a: Int, b: Int) -> Int { return a + b} func printMathResult(ma..