暂时我需要在本地为cocos2d保存一个得分字符串

时间:2012-06-26 22:40:39

标签: iphone xcode4 cocos2d-iphone

我将如何解决这个问题?我可以告诉你一些我的代码。但基本上我猜我必须保存字符串或其他东西。任何提示将非常感激。我想让它出现在另一个场景中。

.h文件

          int _score;
          int _oldScore;
        CCLabelTTF *_scoreLabel;
         @property (nonatomic, assign) CCLabelTTF *scoreLabel;

.m文件

       _score = 0;
       _oldScore = -1;
     self.scoreLabel = [CCLabelTTF labelWithString:@"" dimensions:CGSizeMake(100, 50)               alignment:UITextAlignmentRight fontName:@"Marker Felt" fontSize:32];
     _scoreLabel.position = ccp(winSize.width - _scoreLabel.contentSize.width,      _scoreLabel.contentSize.height);
     _scoreLabel.color = ccc3(255,0,0);
     [self addChild:_scoreLabel z:1];


if (_score != _oldScore) {
    _oldScore = _score;
    [_scoreLabel setString:[NSString stringWithFormat:@"score%d", _score]];



}

1 个答案:

答案 0 :(得分:1)

我认为最简单的方法是将其置于用户默认值中。 E.g。

// to write
[[NSUserDefaults standardUserDefaults] setInteger:yourScore forKey:@"score"];
[[NSUserDefaults standardUserDefaults] synchronize];

// to read
int score = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"];

由于synchronize步骤,因此需要付出轻微的代价,所以不要只使用普通的内部存储,而是执行此操作。

The user defaults用于存储用户在应用中选择的设置。有一个稍微奇怪的名称,因为在桌面上的假设回来时,他们将用于存储将与新文档关联的默认属性。您可以将各种类型的数据存储到用户默认值,如果您愿意,还可以包括NSString

standardUserDefaults是操作系统本身提供的那些。它们是每个应用程序,因此您无需担心命名冲突。