3
내 프로젝트에서 ARC를 사용합니다. 나는 아래의 코드 테스트 :Xcode 4.2의 ARC에서 __weak 및 autorelease 풀을 사용합니다.
NSString __weak *string; @autoreleasepool { string = [NSString stringWithString:@"AAA"]; } NSLog(@"string: %@", string);
나는 그것이 출력으로 생각 :
string: (null)
하지만 실제로 출력 :
string: AAA
나는 그것을 이해하지 않습니다. __weak의 효과는 무엇입니까?
편집 :
그리고 아래 코드 :
NSString __weak *string; NSString __strong *str; @autoreleasepool { str = [NSString stringWithFormat:@"%@", @"AAA" ]; string = str; } NSLog(@"string: %@", string);
그것은 또한 출력으로 :
string: AAA
귀하의 설명은 완벽합니다. 하지만 EDIT에는 질문이 하나 더 있습니다. 설명해주세요! –
좋아, 업데이트했습니다. –
대단히 감사합니다 !!! –