gpt4 book ai didi

objective-c - 单例设计

转载 作者:行者123 更新时间:2023-12-03 16:25:38 24 4
gpt4 key购买 nike

我正在创建一个使用纸牌的游戏。我有一个 AppController 类, Nib 中有一个实例。AppController 实例有一个名为 wordList 的 NSArray 实例变量。在 init 时, Nib 的 AppController 实例生成一个新的 GameCard。每个游戏卡都有一个单词数组,其中包含从 AppController 列表中随机选择的 5 个单词。因为列表很大,所以我只想将其读入内存一次。因此,我只想要一个 AppController 实例,作为单例类。每次从 AppController 中创建新的 GameCard 时,它都应该访问同一个单例实例来检索单词列表。所以基本上,我需要一个创建 GameCard 的单例 AppController,其中每个 GameCard 都有对原始 AppController 的引用。我不知道如何实现这个。如果解释令人困惑,抱歉。

我在网上找到的代码示例如下( http://numbergrinder.com/node/29 )

+ (AppController *)instance 
{
static AppController *instance;

@synchronized(self) {
if(!instance) {
instance = [[AppController alloc] init];
}
}

return instance;
}

但是当我尝试通过下面的代码在 GameCard 实例中对其执行某些操作时,我的应用程序花了很长时间才启动,并且 Xcode 告诉我它正在加载 99797 个堆栈帧。

AppController *controller = [AppController instance];

最佳答案

这听起来像是一个无限循环。确保 -[AppController init] 没有调用 +[AppController 实例]。

关于objective-c - 单例设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1028909/

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