0

iOS 7 のユーザー データを保存および取得するためのこのコードのサニティ チェックを取得したかっただけです。機能していませんが、問題は見られません。

GameData.h

#import <Foundation/Foundation.h>

@interface GameData : NSObject<NSCoding>
{
    int HighScoreGD;
}

@property (readwrite,assign) int HighScoreGD;

@end

extern GameData *gGameData;

GameData.m

#import "GameData.h"

GameData *gGameData;


@implementation GameData

@synthesize HighScoreGD;

-(void)encodeWithCoder:(NSCoder *)coder {
    [coder encodeInt:HighScoreGD forKey:@"HighScoreGD"];
}


-(id)initWithCoder:(NSCoder *)coder {
    if((self = [super init])) {
        HighScoreGD = [coder decodeIntForKey:@"HighScoreGD"];    
    }
    return self;
}

-(id) init {
    if((self = [super init])) {    
    }
    return self;
 }

 -(void) dealloc {
    //[super dealloc];
 }

 @end

データの保存:

gGameData.HighScoreGD = pointsHigh;

データの取得:

pointsHigh = gGameData.HighScoreGD;

私は過去にこれを多くの古いゲーム コンセプト (cocos2d) で使用しましたが、問題なく動作しました。

コンパイル エラーが発生しません。単純にデータを保存していません。

私はこのコードを数年間使用していませんが、機能していません。iOS7 や cocos2d v3 で NSCoder の使い方は変わりましたか?

それとも、どこかで愚かなエラーを起こしていますか?

前もって感謝します。

4

0 に答える 0