您可以在應用程序中創建多少個autorelease?有沒有限制?在ios中使用autorelease池的限制
我在谷歌搜索了一個答案,但沒有得到任何有用的信息。
而且
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被釋放。當我們使用「@autorelease」關鍵字而不是NSAutoreleasePool編寫相同的代碼時,會發生什麼情況。我的意思是,如果我們使用@autorelease,就不會有像[pool drain]這樣的聲明。
我的意思是這樣
int main(){
@autorelease{
NSString *str = [NSString alloc]init];
}
}
感謝 Jithen
你可以使用盡可能多的你想要但你需要知道在哪裏以及如何使用它 –