2008. 7. 22. 23:31
NSString 객체를 만들 때, 참 햇갈리는게 있더군요 -_-;;
한동안 MFC와 C언어만 하다보니, java같은 개념은 다 까먹은 듯 합니다 ㅠㅠ
어쩄든 오늘 삽질 한 결과는 다음과 같습니다.
1. @"abcde" 이렇게 상수형 문자열은 객체가 아니기 때문에 retain count가 없습니다. 없는 건 아니고 쓰레기값...
2. XXXWithString 계열의 함수는 parameter로 입력된 NSString객체를 참조합니다. 즉 2개의 포인터가 하나의 객체를 보게 되어 parameter로 입력된 NSString 객체는 retain count가 1 증가하게 됩니다.
3. XXXWithFormat 계열의 함수는 parameter로 입력된 NSString객체의 값을 복사합니다. 즉 parameter로 입력된 NSString객체의 retain count는 변화가 없으며, 새로운 객체가 생성되는 것 입니다.
오늘 몇시간 동안 삽질해서 알게 된 내용이네요 -_-;;;
080815 수정
StringWithFormat함수는 내부적으로 autorelease pool을 사용하는 것 같습니다. autorelease pool을 만들지 않은 상태에서 호출하면 error가 발생하는 군요. 그 말은 임시 NSString 객체를 만들 때 메모라 할당과 해제를 신경쓰지 않아도 된다는 것인데... iPhone 프로그래밍에서는 못써먹는 건가 봅니다 -_-;;
한동안 MFC와 C언어만 하다보니, java같은 개념은 다 까먹은 듯 합니다 ㅠㅠ
어쩄든 오늘 삽질 한 결과는 다음과 같습니다.
1. @"abcde" 이렇게 상수형 문자열은 객체가 아니기 때문에 retain count가 없습니다. 없는 건 아니고 쓰레기값...
2. XXXWithString 계열의 함수는 parameter로 입력된 NSString객체를 참조합니다. 즉 2개의 포인터가 하나의 객체를 보게 되어 parameter로 입력된 NSString 객체는 retain count가 1 증가하게 됩니다.
3. XXXWithFormat 계열의 함수는 parameter로 입력된 NSString객체의 값을 복사합니다. 즉 parameter로 입력된 NSString객체의 retain count는 변화가 없으며, 새로운 객체가 생성되는 것 입니다.
오늘 몇시간 동안 삽질해서 알게 된 내용이네요 -_-;;;
080815 수정
StringWithFormat함수는 내부적으로 autorelease pool을 사용하는 것 같습니다. autorelease pool을 만들지 않은 상태에서 호출하면 error가 발생하는 군요. 그 말은 임시 NSString 객체를 만들 때 메모라 할당과 해제를 신경쓰지 않아도 된다는 것인데... iPhone 프로그래밍에서는 못써먹는 건가 봅니다 -_-;;
'Programming > iPhoneDev KB' 카테고리의 다른 글
XCode 3.1에서 Google Project Hosting (SVN) 이용하기 - 3. SVN에 소스코드 Import하기 (2) | 2008.12.11 |
---|---|
XCode 3.1에서 Google Project Hosting (SVN) 이용하기 - 2. XCode에서 SVN연결하기 (0) | 2008.12.10 |
XCode 3.1에서 Google Project Hosting (SVN) 이용하기 - 1. Google Project 만들기 (0) | 2008.12.10 |
NSString의 객체 참조 (0) | 2008.07.22 |
Memory Management (0) | 2008.07.22 |
Cocoa Programming - Xcode 3.0 (2) | 2008.06.18 |
TAG cocoa,
Objective c,
Programming
댓글을 달아 주세요