Cocoa 객체의 일생 - 참조 횟수
2011-01-12 11:57:28

코코아는 reference counting이라는 방법을 사용하는데 이는 retain counting이라고도 불릴때 도 있다.

모든 객체는 그 객체의 유지 횟수, 즉 참조횟수라고 하는 정수 값을 가지고 있다. 어떤 코드에서 그 객체를 사용하고 있다면 그 코드는 객체의 참조 횟수를 증가시켜 ⎡이 객체가 사용되고 있다⎦ 라고 알려준다. 그 코드가 객체 사용을 다 끝내면 참조 횟수를 줄여서 객체가 더 이상 사용되지 않음을 알려준다. 참조 횟수가 0이 되면 아무도 그 객체를 사용하지 않게 되므로 소멸되고, 객체가 사용했던 메모리를 시스템에 반환하게 된다.

참조 횟수가 0이 되어 객체가 소멸되려고 할 때 Objective-C는 자동적으로 dalloc 메시지를 해당 객체에게 보낸다. 이는 소멸자 정도라고 생각해도 되고 ~로 시작되는 C++ 의 소멸자를 오버라이드 할 수 있듯이 이도 오버라이드 가능하다. 당연한 거다;

dealloc을 직접 호출 하면 안된다. 객체가 소멸될 때는 Objective-C가 자동 적으로 호출한다. 현재 참조 횟수를 알아내기 위해서는 retainCount 메시지를 객체에 보내면 된다.

- (id) retain;

- (void) release;

- (unsigned) retainCount;

retain은 id를 반환한다. 그렇게 함으로써 참조 호출의 반환 값으로 다른 메시지를 보낼수 있다. 그리고 참조 횟수를 증가시키고 나서 다른 작업을 바로 요청할 수 있다. 예를 들어 [[car retain] setTire: tire atIndex:2];은 car의 참조횟수를 증가시키고 setTire:atIndex: 작업을 진행한다.

- 이 글은 Apress Bj 퍼블릭의 아이폰과 맥 OS X 개발을 위한 오브젝티브-C 2.0 이라는 책의 9장. 메모리 관리에서 참조하였다.

▼ more
work list
2011-01-12 10:59:12

[Study & Paper]

1. SnoMedCT, related papers.

2. Statistics, R tool

[BiKE]

1. Crawl data Jan / 17th

2. iPhone Twitter Jan / 12th ~ Jan / 21

3. Semantic Study ~ Feb/28

[SCSSM]

1. 총회 Jan / 14th

▼ more
함께 찍은 이미지 사진
2011-01-12 01:39:50

객관적 사실에 대한 나열

▼ more
사진첩을 위한 초안
2011-01-11 12:03:11

필수 조건

- 날짜, 지역, 사진, 사진에 대한 로그가 보인다.

- 웹, 아이폰에서 업로드가 가능하다.

- 웹에서 다운로드가 가능하다.

- 아이폰에서 보는 것, 글 내용 편집이 가능하다.

▼ more