【问题标题】:Do convenience constructor increase the size of the app...?便利构造函数是否会增加应用程序的大小...?
【发布时间】:2012-04-14 14:04:52
【问题描述】:

我很确定他们会...但只是想确认...例如看看下面的代码..

- (void)reset {
NSNumber *zero = [NSNumber numberWithInteger:0];
[self setCount:zero];
}

现在这会返回一个自动释放的对象,该对象会被添加到应用程序的自动释放池中,从而增加其大小...

除非应用程序终止,否则它不会被释放..? 任何帮助表示赞赏

【问题讨论】:

    标签: iphone objective-c ios constructor autorelease


    【解决方案1】:

    内存在下一次​​通过应用程序的主事件循环时被释放。

    确切的时间取决于您的应用程序何时完成执行代码并返回事件循环。在事件循环期间,在计划的任务中,正在清空(耗尽)应用程序的自动释放池。

    如果您担心自动释放池越来越大,您可以战略性地使用自己的自动释放池。

    【讨论】:

    • 我正在寻找确切的时间,我的意思是什么触发了通过..?
    • 在@trudyscousin 所说的基础上,[NSNumber numberWithInteger:0] 和其他常见对象在运行时被编译为单例以节省内存。
    • @trudyscousin 你不知道主事件循环何时运行,但你可以使用,作为一个一般的想法,一旦你编写的任何代码执行完毕,主循环就会运行。以这种方式想象它。主事件循环正在运行,当它需要时,它会调用你的代码来做某事。完成对代码的调用后,事件循环将再次运行。这并不完全是发生了什么,但足够接近得到图片......基本上,一旦你的代码输入完成,主事件循环就会再次运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    相关资源
    最近更新 更多