티스토리 뷰
~~~.h 파일
@property ( nonatomic, retain ) UITextField* notesField;
@property ( nonatomic, retain ) UIPickerView* tweetPicker;
~~~.m파일
@synthesize tweetPicker, notesField; //이렇게 콤마 찍고 두개를 연달아 써도 된다.
@property라고 선언하는 것은 컴파일러에 프로퍼티가 있다는 것만 알려줄뿐 어떻게 하라는 것은 얘기하지 않는다.
구현파일에서 @sythesize 키워드로 지정해야만 컴파일러가 getter, setter를 자동으로 만들어주게 된다.
여기서 setter도 선언된 @property 속성에 따라 만들어주게 된다.
readonly- 프로퍼티가 변경되지 않도록 할때 사용. 읽기 전용 따라서 세터를 자동생성해 주지는 않는다.
retain - 객체의 값을 다룰때 주로 사용. 컴파일러는 입력값으로 쓰이는 객체를 리테인( retain)하고, 이전객체는 릴리스한다.
readwrite - 프로퍼티를 변경할 필요가 있을때 사용한다. 컴파일러는 게터와 세터를 생성해 준다. 이것이 기본값(default).
copy - 전달된 원래의 값이 변경되지 않도록 할때 사용한다. 예를 들어 배열을 프로퍼티로 할당할 때, 프로퍼티로 지정된 다음에도
원래 배열에 있던 값을 보존하고자 하는 경우에 쓰인다. 객체를 복제하고 복제된 프로퍼티에 지정
assign - int나 float와 같은 기본형을 다룰때 사용한다. 컴파일러는 세터를 단순히 "myField=value"와 같은 할당문으로 만든다.
이것이 기본값 그러나 대부분 객체를 다룰 때에는 메모리 관리 측면에서 적절치 않다.
nonatomic 키워드 - 기본적으로 생성된 접근자 메소드는 프로퍼티의 값을 변경할 때 뮤텍스(mutex)를 사용하도록 되어 있어서
멀티쓰레드 환경에서도 안전하게 실행할 수 있다. 이런 특성을 atomic(원자성)이라고 한다.
그러나 클래스가 멀티쓰레드 환경에서 실행되는 것이 아니라면 이것은 낭비라고 할 수 있다.
nonatomic 으로 속성을 선언하면 불필요한 뮤텍스 관련 처리를 하지 않도록 할 수 있다.
아주 쉽게 잘 설명해놓으신 분이 계신다~ ㅎㅎㅎ
http://pc-to-mac-changer.blogspot.kr/2012/04/objective-c-property-atomic-nonatomic.html
'Programming language > iOS & objective-C' 카테고리의 다른 글
NSDictionary~ +(id)dictionaryWithObjectsAndKeys:~~~~~ (0) | 2012.11.09 |
---|---|
UIProgress example (0) | 2012.11.08 |
iOS6 변화 된것 참조 (0) | 2012.10.19 |
objective-c 기초 1 (0) | 2012.03.22 |
objective-c 튜토 한글 번역 (0) | 2012.03.22 |
- Total
- Today
- Yesterday
- react-router-dom
- 태그
- 리프래시토큰
- interceptors
- React.StrictMode
- cordova
- react
- Vue3
- svg모션
- for of 구문
- svg icon font
- git
- Angular
- JsDoc
- 코도바
- Aptana
- IntrinsicElements
- svg 폰트
- 앵귤러
- 자바스크립트
- 반복문
- RefreshToken
- icon font
- 내장요소
- anime.js
- CSS
- vue-router
- git checkout -b
- Intrinsic
- 아이콘 폰트 만들기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |