테스트라고하는 방법이 있다고 가정 해 보겠습니다.ARC에서 다시 초기화 된 개체의 메모리는 어떻게됩니까?
test{
NSString *answer = [[NSString alloc] initWithString:@"VALUE 1"];
answer = [[NSString alloc] initWithString:@"VALUE 2"];
}
답변이 다시 초기화되면 ARC의 첫 번째 초기화 메모리는 어떻게됩니까?
테스트라고하는 방법이 있다고 가정 해 보겠습니다.ARC에서 다시 초기화 된 개체의 메모리는 어떻게됩니까?
test{
NSString *answer = [[NSString alloc] initWithString:@"VALUE 1"];
answer = [[NSString alloc] initWithString:@"VALUE 2"];
}
답변이 다시 초기화되면 ARC의 첫 번째 초기화 메모리는 어떻게됩니까?
제 문자열 강한 소유권과 자격이 경우 오브젝트 ([[NSString alloc] initWithString:@"VALUE 1"];
에서 생성 된 문자열)
answer
이다 해제된다. 그래서 docs에서, 이것은 당신이 answer
에 할당 할 때 발생하는 것입니다 :
을 객체를 __strong를 들어, 새로운 pointee 먼저 유지됩니다; 둘째로, lvalue는 원시적 인 의미론으로로드됩니다. 셋째, 새로운 pointee는 원시 의미론을 사용하여 lvalue에 저장됩니다. 마지막으로, 뾰족한 앞머리가 풀립니다. 이것은 원자 적으로 수행되지 않습니다. 동시로드 및 저장에 대비하여 외부 동기화를 사용해야합니다.
두 번째 줄에는 '@'가 없습니다. –
NSString * answer = [[NSString alloc] initWithString : @ "VALUE 1"]; 정확히 NSString * answer = @ "VALUE 1"과 동일합니다. –
NSObject 천국에갔습니다. 그것이 좋은 경우 그것은 NSNumber 또는 UIImage로 환생 수 있습니다. –