내 질문은 개체가 실제로 autorelease 풀에 추가됩니다 때입니까? Autorelease 풀이 만들어지고 범위 내에서 개체가 선언되면 autorelease 풀에 개체가 추가되거나 autoreleased로 지정되면 풀에 추가됩니다.Autorelease 풀의 개체가 Objective-C에서 어떻게 처리됩니까?
int main(void) {
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
NSString *string;
NSArray * array;
string = [[[NSString alloc] init] autorelease];
array = [[NSArray alloc] init];
/* use the string */
[pool drain];
}
이 경우 문자열 만 풀에 추가되거나 배열이 풀에 추가됩니까?
답장을 보내 주셔서 감사합니다. 또한 중첩 된 풀을 만들 때 개체가 부모 풀에서 만들어지는 autorelease와 같이 중첩 된 풀에서 개체를 사용할 수 있는지 또 다른 의문의 여지가 있습니다. – Cathy
@Cathy : 가능 합니다만, 이것은 메모리 관리를 혼란스럽게 할 것입니다. 문서가 말했듯이, 여러분이 생성하거나 보존하지 않은 것을 공개하지 마십시오. 기본적으로 나는 이것을 깔끔하게 처리 할 수있는 상황을 생각할 수 없다. 기술적으로는 괜찮지 만, 너무 많이 공개하지 않는 한 (두 번 자동 갱신) –