在几个示例代码中可以找到这一点
static NSNumberFormatter *numberFormatter = nil;
if (numberFormatter == nil) {
numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:6];
}
该代码不会产生内存泄漏吗?或者是否有一些内置的魔法可以释放分配的内存?
问候
最佳答案
在我看来,这段代码来自实现“单例模式”或与之非常相似的东西的地方。
由于变量是静态
,因此它的值将在函数调用之间被记住。这意味着它在应用程序的生命周期中仅分配一次。
在此代码中,numberFormatter
变量似乎是应用程序在其整个生命周期内随时需要的东西 - 因此无需释放它。
更准确地说,如果应用程序经常需要它,则释放它可能是不切实际的。这会导致不必要的内存分配和释放操作。
请注意,在应用程序不再运行后,属于您的应用程序的所有内存都会被操作系统释放。
这样,分配给该变量的内存也将被释放。
如果该对象使用内存以外的资源,则需要显式清理,但如果没有,则不需要。
关于iphone - 关于释放分配的内存的简单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3382433/