내가 지금은 아래의 코드가, 오토 릴리즈에 대한 질문이 있습니다 :autorelease와 runloop 및 thread의 관계는 무엇입니까?
int main(int argc, char *argv[]){
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}}
다큐먼트가 @autoreleasepool의 끝에서 말한다을 {} 오토 릴리즈로 표시된 개체가 해제 메시지를 받게됩니다. 하지만 UIApplicationMain은 절대 반환하지 않습니다. 즉, 흐름이 @autoreleasepool의 끝까지 도달하지 못하고 autorelease로 표시된 객체는 앱이 죽을 때까지 결코 해제되지 않습니다. autorelease의 의미가 없다 .....
iOS 시스템이 일부 스레드 (하나의 스레드와 하나의 runloop이 있음)를 생성 할 것이라고 말한 사람에게 runloop이 autorelease 풀을 생성한다고 말했습니다 .so autorelease 객체는 thead 또는 runloop의 끝에서 해제됩니다. 하지만 가장 큰 상황은 주 스레드를 사용하는 것입니다. 그래서 그가 말하는 것은 나를 설득하지 않습니다.
오토 레어를 사용하기에 적절한시기. 오랫동안 혼란 스러웠습니다.
나는 하나 runloop 끝 (주 runloop 모든 응용 프로그램의 생명을 ?? 존재하는 것) 할 때 오토 릴리즈 객체가 얻을 발표 할 예정 다른 점을 얻을 그래서 잘 모르겠어요 ..
어느 지점 및 관련 문서는 것입니다 감사하겠습니다!
나는 같은 질문을했다. 수용 가능한 행동에 대한 의미/시연의 이유가있을 수 있습니다. UIApplicationMain의 유일한 방법은 프로그램이'exit() '하는 것이므로 어쨌든 모든 메모리가 운영 체제로 반환됩니다. – borrrden
네, 맞습니다. – frank