애플리케이션에서 몇 개의 자동 릴리스를 생성 할 수 있습니까? 제한이 있습니까?ios에서 자동 해제 풀 사용시 제한 사항
Google에서 답변을 검색했지만 유용한 정보가 없습니다.
그리고 구글에서
int main(){
NSAutoreleasepool *pool = [NSAutoreleasepool alloc]init];
NSString *str = [NSString alloc]init];
[pool drain];
}
, 난 거의 모든 기사에서이 샘플을 발견했다. 위의 코드를 사용하면 Xcode에서 분석을하면 메모리 누수가 발생합니다. 대신 str을 이런 식으로 할당하면 NSString * str = [NSString alloc] init] autorelease;
메모리 누수가 발생하지 않습니다.
어느 쪽이 옳은가요?
또한 위의 코드에서 나는 [pool drain] 문을 실행하면 변수 str이 해제된다는 것을 발견했습니다. NSAutoreleasePool 대신 "@autorelease"키워드를 사용하여 동일한 코드를 작성하면 어떻게됩니까? 우리가 @autorelease를 사용한다면 [pool drain]과 같은 어떤 언급도 없을 것입니다.
나는
int main(){
@autorelease{
NSString *str = [NSString alloc]init];
}
}
감사 Jithen
u는 원하는만큼 사용할 수 있지만 어디서 어떻게 사용하는지 알고 싶습니다. –