gpt4 book ai didi

ios - iOS 共享实例在哪里释放

转载 作者:行者123 更新时间:2023-12-01 18:23:09 25 4
gpt4 key购买 nike

我有一个共享实例(一个简单的数据 Controller ),在我的项目中我不使用 ARC。

static ECOMDataController *sharedInstanse;
@implementation ECOMDataController
+(ECOMDataController *)sharedInstance
{
return sharedInstanse;
}
-(id)init
{
[self checkAndCreateDataFileIfExist];
[self readAppFile];
if (sharedInstanse)
NSLog(@"The shared instance was created already.");
sharedInstanse = self;
return self;
}

我在其他方法中使用它,如下所示:
- (void)viewDidLoad
{
[super viewDidLoad];
dataController = [ECOMDataController sharedInstance];
[dataController readAppFile];
[[self tableView] reloadData];
}

正如我从泄漏工具中看到的那样——我这里有内存泄漏——我应该怎么做才能释放数据 Controller ?哪里更好呢?

最佳答案

Rocky 是对的:你不会释放一个单例。坦率地说,我根本不会使用那种模式——除了像 AppDelegate 或 NSNotificationCenter 这样的系统调用。这种模式有很多陷阱......但这是我的观点(尽管我并不孤单)。

更重要的是,你为什么不使用 ARC?绝对没有理由不这样做,而且有很多原因。特别是对于新开发人员来说,当编译器会为你做这件事时,在内存管理上大惊小怪是没有意义的——而且会做得更好。你有足够的东西来学习,而不用担心保留计数!

关于ios - iOS 共享实例在哪里释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15907562/

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