gpt4 book ai didi

objective-c - cocoa 中默认的 NSAutoreleasePool ?

转载 作者:行者123 更新时间:2023-12-03 17:29:14 25 4
gpt4 key购买 nike

我询问了NSAutoreleasePool ,并了解在这种情况下我需要显式分配自动释放池。

int main()
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

// Create an array
NSArray *month = [NSArray arrayWithObjects:@ ... nill];

[pool drain];
}

在我的另一个question ,我不需要释放 NSArray 因为它将自动释放。

- (NSArray*) getTodayArray
{

...

NSArray *res = [NSArray arrayWithObjects: year, month, nil];

return res;
}

为了使对象自动释放,即使我没有进行任何 NSAutorelease,Cocoa 中也应该分配一些默认自动释放池。 Xcode 生成的 main 函数非常简单。

int main(int argc, char *argv[])
{
return NSApplicationMain(argc, (const char **) argv);
}

正确吗?如果是的话,何时以及如何分配?

最佳答案

主线程的 NSRunLoop 每次“循环”时都会创建并销毁一个 NSAutoreleasePool。但请注意,当您分离任何后台线程时,您需要为其创建一个自动释放池(因为辅助线程默认情况下没有事件的运行循环)。

关于objective-c - cocoa 中默认的 NSAutoreleasePool ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5138454/

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