반응형
NSString *tt2 = [[NSString alloc] initWithString:@"tt2"];
NSLog(@"tt2 retain count : %d", [tt2 retainCount]);
[tt2 release];
NSLog(@"tt2 retain count : %d", [tt2 retainCount]);
코딩 질을 하길 위 처럼 하면 예상되는 로그는
1
0
일겁니다. 그런데, 경악스럽게도
2147483647
2147483647
가 나옵니다.
그 이유가 개발자 문서 retainCount 메소드 부분에 나와있네요.
즉, 해제되지 말아야할 객체는 UINT_MAX를 리턴해준다는 군요.
@"tt2" 형태의 상수형 스트링을 넣게 되면 상수메모리에 잡히게 됨으로 release를 할 수 없게 된다는군요. 의외입니다. 여튼, 그래서 UINIT_MAX가 리턴된다는것!
NSLog(@"tt2 retain count : %d", [tt2 retainCount]);
[tt2 release];
NSLog(@"tt2 retain count : %d", [tt2 retainCount]);
코딩 질을 하길 위 처럼 하면 예상되는 로그는
1
0
일겁니다. 그런데, 경악스럽게도
2147483647
2147483647
가 나옵니다.
그 이유가 개발자 문서 retainCount 메소드 부분에 나와있네요.
NSObject - retainCount
For objects that never get released (that is, their
release
method does nothing), this method should return UINT_MAX
, as defined in <limits.h>
.즉, 해제되지 말아야할 객체는 UINT_MAX를 리턴해준다는 군요.
@"tt2" 형태의 상수형 스트링을 넣게 되면 상수메모리에 잡히게 됨으로 release를 할 수 없게 된다는군요. 의외입니다. 여튼, 그래서 UINIT_MAX가 리턴된다는것!
반응형
'기술 > iOS' 카테고리의 다른 글
NSXMLParser 이용 중 '<' 앞의 whiteSpace가 문제 될 때. (0) | 2012.02.23 |
---|---|
xCode 4.2에서 sizeWithFont:constrainedToSize:lineBreakMode: 사용시 주의점. (0) | 2012.02.20 |
DrawRect와 setNeedsDisplay. (0) | 2012.02.12 |
Lion에서 사용자 라이브러리 폴더 보이게 하기. (0) | 2012.02.07 |
iBooks Author & iTunes U (0) | 2012.01.20 |