我正在创建一个使用纸牌的游戏。
我在笔尖中有一个实例的AppController类。
AppController实例具有一个称为wordList的NSArray实例变量。
初始化时,笔尖的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/

10-13 04:19