我在我的iphone应用程序中有一个plist,我想从我的单个读取和写入一个整数并形成它。
我有这个读它:
scoreData *score = [scoreData sharedData];
filePath = @"stats.plist";
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
score.highScore = [plistDict objectForKey:@"score"];
然后写信给它:
scoreData *score = [scoreData sharedData];
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
[plistDict setValue:score.highScore forKey:@"score"];
[plistDict writeToFile:filePath atomically: YES];
我在这两个部分都收到错误:
无效的转换形式objc_object * to int
和
无效的转换表单int到objc_object
感谢任何帮助,谢谢。
答案 0 :(得分:7)
两件事:
当您在字典中设置密钥时,you're probably after setObject:forKey:
代替setValue:forKey:
。
字典包含对象(类型id
或NSString*
或您自己的Obj-C对象),而不是基本类型(int,BOOL等)。
如果要在Obj-C集合中存储基本类型,可以将其“包装”在这样的对象中:
[plistDict setObject:[NSNumber numberWithInt:score.highScore] forKey:@"score"];
然后像这样回复:
score.highScore = [[pListDict objectForKey:@"score"] intValue];
答案 1 :(得分:0)
看看这是否能回答你的问题:
How to create a new custom property list in iPhone Applications
您可以使用NSUserDefaults,但当然highScore并不是默认值。