2016/04/19 2

[iOS] KVC, KVO

KVC (Key-Value-Coding) KVC는 문자열을 이용해 property에 접근할 수 있게 해주는 기능이다. 접근자를 이용하지 않고 property의 이름인 문자열로 접근하므로, 객체간 의존성을 낮추고 결합도가 낮은 소프트웨어 개발을 할 수 있게 해준다. KVC를 구현한 메소드는 NSKeyValueCoding 프로토콜에 의해 정의되며, NSObject는 이 프로토콜을 implement한 상태이다. KVC는 아래와 같은 로직으로 동작한다. 1. key와 일치하는 property를 찾는다.2. 일치하는 property가 없을 경우, key와 일치하는 인스턴스 변수를 찾는다. 3. 일치하는 property나 인스턴스 변수가 있으면, 이를 적용한다. 없으면 'valueForUndefinedKey:'나 ..

[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를 통해 간단한 ..