只是希望对此代码进行健全性检查,以便存储和检索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的使用方式?
或者我在某个地方犯了一个愚蠢的错误?
提前致谢。