Sunday, April 15, 2012

Objective-C 의 @property 에서 assign, retain, copy 의 차이

질문 : @property 에서 assign, retain, copy 의 차이
답 :
  1. assign 은 그냥 값만 set / get 하는 것
  2. retain 은 set / get 할때 retain count 를 올려주고 내려주는 것
  3. copy 는 set / get 할때 pointer 가 아닌 value 를 주고받는 것
    (단, 변하지 않는 값의 경우 copy 가 아닌 원래 값을 돌려줌)
쉽게 말해 int나 float같은 그냥 value의 경우는 assign이 적합하고
일반적인 클래스의 경우 retain 이 적합
값의 copy가 필요한 특수한 경우에 한해서는 copy 사용(예: NSMutableString 변수를 변화시켜가다가 그걸로 NSString 인 멤버를 set 하는 경우 등)

레퍼런스 : Assign, retain, copy: pitfalls in Obj-C property accessors
키워드 : @synthesize

No comments:

Post a Comment