-1
중복을 표시하지 마십시오 : - 나는 몇 줄 alloc 후에 RetainCount가 -1입니까?
NSString *str = [[NSString alloc] init];
str = @"Test";
NSLog(@"%d",[str retainCount]);
을 생성하고 출력은 -1 호야는 설명한다.
중복을 표시하지 마십시오 : - 나는 몇 줄 alloc 후에 RetainCount가 -1입니까?
NSString *str = [[NSString alloc] init];
str = @"Test";
NSLog(@"%d",[str retainCount]);
을 생성하고 출력은 -1 호야는 설명한다.
내가 지적한 질문의 속이다. UINT_MAX를 부호있는 정수로 인쇄하기 때문에 -1입니다. RC는 컴파일러에 의해 생성 된 싱글 톤 문자열이므로 효율적으로 할당되거나 할당 취소되지 않기 때문에 -1입니다.
이 패턴은 :
NSString *str = [[NSString alloc] init];
str = @"Kashyap";
는 이해되지 않는다; 문자열 인스턴스를 할당하고 첫 번째 행에 str
에 대한 참조를 할당 한 다음 두 번째 행에서 해당 참조를 즉시 덮어 씁니다 (ARC를 사용하지 않는 경우 첫 번째 문자열을 유출합니다).
반 패턴을 옹호하는 안내서 또는 책이있는 경우이를 지적하십시오.
그래도 복제본입니다. www.whentouseretaincount.com을 참조하십시오. – bbum
심지어 속임수 였는지 알지도 못한다 –
어쨌든 결코 해제되지 않는 상수 문자열을 요구하기 때문에 RetainCount는 -1입니다. –