pro*_*eek 0 cocoa objective-c autorelease
我询问了NSAutoreleasePool,并了解在这种情况下我需要显式分配自动释放池.
int main()
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// Create an array
NSArray *month = [NSArray arrayWithObjects:@ ... nill];
[pool drain];
}
Run Code Online (Sandbox Code Playgroud)
在我的另一个问题中,我不需要发布NSArray,因为它将被自动释放.
- (NSArray*) getTodayArray
{
...
NSArray *res = [NSArray arrayWithObjects: year, month, nil];
return res;
}
Run Code Online (Sandbox Code Playgroud)
为了成为自动释放的对象,即使我没有创建任何NSAutorelease,也应该default在Cocoa中分配一些自动释放池.Xcode生成的主要功能非常简单.
int main(int argc, char *argv[])
{
return NSApplicationMain(argc, (const char **) argv);
}
Run Code Online (Sandbox Code Playgroud)
这是对的吗?如果是的话,何时以及如何分配?
主线程每次"循环"时都会NSRunLoop创建并销毁NSAutoreleasePool它.但请注意,当您拆分任何后台线程时,您需要为它创建一个自动释放池(因为默认情况下,辅助线程没有活动的运行循环).
| 归档时间: |
|
| 查看次数: |
388 次 |
| 最近记录: |