'속성'에 해당되는 글 1건

  1. 2010.10.02 자주 쓰이는 프로퍼티 (Property) 속성
2010. 10. 2. 23:04
먼저 이 글은 모두 Head First iPhone Development 책을 읽고 내게 필요한 부분, 중요한 부분, 느낀점등을 잊지 않기위해, 나중에 글쓴이가 봤을 때 왜 이렇게 했었는지 등을 다시 한번 확인하기 위해 작성한것임을 밝힙니다.

readonly
프로퍼티가 변경되지 않도록 할 때 사용한다. 필드의 값을 바꾸는 메소드를 사용자가 직접 만들 수 있기는 하지만, 컴파일러가 setter를 자동으로 생성해 주지는 않는다.

retain
객체의 값을 다룰 때 주로 사용한다. 컴파일러는 입력값으로 쓰이는 객체를 retain 하고, 이전에 있던 객체는 release 한다.

readwrite
프로퍼티를 변경할 필요가 있을 때 사용한다. 컴파일러는 getter 와 setter 를 생성해 준다. 기본값이다.

copy
전달된 원래의 값이 변경되지 않도록 할 때 사용한다. 예를들어 배열을 프로퍼티로 할당할 때, 프로퍼티로 지정된 다음에도 원래 배열에 있던 값을 보존하고자 하는 경우에 쓰인다. 객체를 복제하고 복제된 객체를 프로퍼티에 지정하게 된다.

assign
int 나 float 와 같은 기본형을 다룰 때 사용한다. 컴파일러는 setter 를 단순히 "myField = value" 와 같은 단순 할당문으로 만든다. 이것이 기본값이다. 그러나 대부분 객체를 다룰 때에는 메모리 관리 측면에서 적절하지 않다.

nonatomic
기본적으로 생성된 접근자 메소드는 프로퍼티의 값을 변경할때, 뮤텍스 (mutex) 를 사용하도록 되어 있어서 멀티 쓰레드 환경에서 안전하게 실행할 수 있다. 이런 특성을 atomic 이라고 한다. 그러나 클래스가 멀티 쓰레드 환경에서 실행되는 것이 아니라면, 이것은 낭비이므로 nonatomic 으로 속성을 선언하면 불필요한 뮤텍스 관련 처리를 하지 않도록 할 수 있다.

'공부 > iPhone' 카테고리의 다른 글

아이폰개발 용어 3  (0) 2010.10.03
메모리 관리  (0) 2010.10.02
아이폰개발 용어 2  (0) 2010.10.02
프로토콜 (Protocol)  (0) 2010.10.02
피커 (Picker)  (0) 2010.10.02
Posted by terebyte