[cocos2d]有個例子不太明白..有關NSMutableArray

http://www.cnblogs.com/zilongshanren/archive/2011/07/10/2102401.html

对于DataModel类,只要是对NSMutableArray熟悉的人都会觉得很简单,让我们直接看看代码吧:

#import "cocos2d.h"

@interface DataModel : NSObject {
CCLayer
*_gameLayer;
NSMutableArray
*
_targets;
NSMutableArray
*
_waypoints;
NSMutableArray
*
_waves;
UIPanGestureRecognizer
*
_gestureRecognizer;
}

@property (nonatomic, retain) CCLayer
*
_gameLayer;

@property (nonatomic, retain) NSMutableArray
*
_targets;
@property (nonatomic, retain) NSMutableArray
*
_waypoints;
@property (nonatomic, retain) NSMutableArray
*
_waves;
@property (nonatomic, retain) UIPanGestureRecognizer
*
_gestureRecognizer;;
+ (DataModel*
)getModel;

@end

所以,这里大部分代码都是很直白的。DataModel是一个单例的类,符合NSCoding协议。我们这样做有两个原因:其一,我们这样做的目的是用来保存之后游戏的状态,其二,我们把它做成单例是因为整个游戏中,我们只想让一个DataModel对象存在。我们可以从任何类中访问DataModel,只需要包含相应的头文件,然后调用下面的方法就行了:

DataModel *m = ;

下面是单例的具体实现:

+(DataModel*)getModel
{
if (!
_sharedContext) {
_sharedContext
=
init];
}
return
_sharedContext;
}
這個datamodel有甚麼用呢?

這樣永遠都只會有唯一一個DataModel,既然儲存遊戲數據,你肯定不希望有多個dataModel存在。

具體請查 ‘singleton'相關介紹