您可以在应用程序中创建多少个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
你可以使用尽可能多的你想要但你需要知道在哪里以及如何使用它 –