본문 바로가기

Objective-C

[Objective-C] assign, retain, copy 란?

처음 생각없이 objective  c는 c를 공부한 사람에는 쉽다는 이야기를 듣고 아무 생각 없이 

무턱대로 시작했었다. 그때 가장 문제가 된게 클래스 멤버에 대한 호출이 없다. 가져다 사용하고

싶은데, 방법을 모르곘었다. 

 하지만, 모든 답은 인터넷에 있다. 


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 하는 경우 등)

'Objective-C' 카테고리의 다른 글

[Objective-C] 자료형 변환 (NSNumber, int)  (0) 2013.02.13
[Objective-C] CGRectContainsPoint  (0) 2013.02.13
[Objective-C] nonatomic 이란?  (0) 2013.02.13
[Objective-C] may not respond to  (0) 2013.02.13
[Objective-C] 랜덤 함수  (0) 2013.02.13