你可以在你的应用程序中创建多少个自动释放?有没有限制?
我在谷歌搜索答案,但没有得到任何有用的信息。
和
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];
}
}
谢谢吉腾