在cocos2d编程中,很多情况我们需要类只生成一个实例,这称之为该类的单例类.
一般我们在类中这样实现单例方法:
注意静态变量sharedinstance也可以放到类外部去.
但是如果是多线程环境中,上述方法并不能一定保证生成唯一实例,你还必须添加同步代码.
一不小心,你写的同步代码有可能就是错的.如果是简单的cocos2d单线程程序很可能发现不了,如果放到复杂的多线程app中运行可能就会出现莫名其妙的错误.
殊不知foundation平台中已经提供了简单的解决办法,我们可以这样写: