gpt4 book ai didi

iphone - 如果没有声明 nsautoreleasepool,autorelease 调用是否会崩溃?

转载 作者:行者123 更新时间:2023-12-03 19:41:40 26 4
gpt4 key购买 nike

抱歉,我是 cocoa 编程的新手,我不确定我是否真正理解 nsautoreleasepool 的工作原理。

我读到的所有地方都说 NSAutoreleasePool 负责所有自动释放调用(谈论最后声明的 NSAutoreleasePool)。

考虑以下代码:

int main(int argc, char *argv[]) {

//NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
//[pool release];
return retVal;
}

在我的申请的某个时刻,我也会有类似的东西:

NSString* b = [[NSString alloc] initWithFormat:@"%d", 10];
[b autorelease];

考虑到我在任何地方都没有 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];...[b autorelease]; 不应该使应用程序崩溃?但该应用程序显然运行良好。

观察:我无意在没有 NSAutoreleasePool 的情况下编写应用程序,我只是想了解它是如何工作的。这一事实让我对我自以为知道的事情产生了怀疑。

最佳答案

您只会在控制台中收到一条警告,提示没有自动释放池并且对象已泄漏。

如果您确实想了解自动释放池,请阅读Mike Ash's Let's build NSAutoreleasePool .

关于iphone - 如果没有声明 nsautoreleasepool,autorelease 调用是否会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8793932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com