반응형
    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 메소드 부분에 나와있네요.

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가 리턴된다는것!
반응형
Posted by 프리지크
:
BLOG main image
인생에서는 찾고, 노력하고, 희생할 각오가 되어 있는 것만 얻을 수 있다. (조시 매슈 애덤스) by 프리지크

공지사항

카테고리

분류 전체보기 (123)
끄적끄적 (16)
좋은 글 (9)
자료 (19)
런닝&피트니스 (18)
건강 (2)
기술 (43)
기사 스크랩 (1)
내가 본 공연 후기 (1)
내가 가 본 맛집 (5)
괜찮아 보이는 펜션들 (4)
(4)
한장한장 (0)
비공개 스크랩 (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :
반응형