【发布时间】:2012-11-06 14:31:34
【问题描述】:
我想为我的应用程序保存一些数据...我必须保存 3 个字符串和 3 个整数
我这样做的方式似乎不道德,并且特别在 iOS 模拟器上会出错
我正在寻找一种 Apple 会批准的方式
下面的代码在第一次执行时会报错吗(例如没有文件或类似的东西)(应用程序启动后立即调用加载数据)
这是我的代码
- (NSString *) saveFilePath{
NSArray *path =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [[path objectAtIndex:0] stringByAppendingPathComponent:@"savefile.plist"];
}
-(void)loadData:(int)a{
NSString *myPath = [self saveFilePath];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPath];
if (fileExists) {
NSArray *values = [[NSArray alloc] initWithContentsOfFile:myPath];
NSString *myString;
myString=[NSString stringWithFormat:@"%@`s : %@ Taps",[values objectAtIndex:(a++)],[values objectAtIndex:a]];
label.text=myString;
hscore=[[values objectAtIndex:a] integerValue];
}
}
-(void)saveData:(int)a{
NSArray *values=[[NSArray alloc] initWithObjects:@"No Game",@"0",@"No Game",@"0",@"No Game",@"0", nil];
NSString *myPath = [self saveFilePath];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPath];
if (fileExists) {
values = [[NSArray alloc] initWithContentsOfFile:myPath];
}
// some value changing logic that works
[values writeToFile:myPath atomically:YES];
}
【问题讨论】:
-
你需要查看 Core Data 来存储。你这样做的方式将依赖于内存来加载存储的整个对象。如果只是少量数据,那应该没问题,但如果需要更复杂的查询能力和性能,Core Data 更好。
标签: ios objective-c xcode save loading