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 の使い方は変わりましたか?
それとも、どこかで愚かなエラーを起こしていますか?
前もって感謝します。