所以我的第一个问题是:
>主要的autorelease Pool在哪里?
我的下一个问题是:
>如果未创建主autorelease Pool,是否需要创建它?或者以某种自动方式释放自动释放的对象?
解决方法 您的main.m文件应该有以下调用:NSApplicationMain(argc,(const char **)argv);
NSApplicationMain()
负责创建应用程序,即NSApplication
的实例,而后者又负责创建自动释放池:
The NSApplication class sets up autorelease pools (instances of the NSautoreleasePool class) during initialization and insIDe the event loop—specifically,within its initialization (or sharedApplication) and run methods.
这意味着,在一般情况下,您不必担心创建自动释放池,因为NSApplication已经在初始化和事件循环中都这样做了.在某些情况下,创建自己的自动释放池可能是必要/可取的,例如一个循环创建许多自动释放对象的方法.在这种情况下,为每个循环迭代创建一个自动释放池是个好主意.
总结以上是内存溢出为你收集整理的macos – OS X应用程序的自动释放池在哪里创建并耗尽?全部内容,希望文章能够帮你解决macos – OS X应用程序的自动释放池在哪里创建并耗尽?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)