Xcode保存/加载数据

时间:2012-11-06 14:31:35

标签: ios objective-c xcode save loading

我想为我的应用程序保存一些数据......我必须保存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];
 }

2 个答案:

答案 0 :(得分:0)

尝试硬编码路径并测试哪里出错!

- (NSString *) saveFilePath
 {    
     NSString *fileName = [NSString stringWithFormat:@"Documents/savefile.plist"];
     NSString *fullFilePath = [NSHomeDirectory() stringByAppendingPathComponent:fileName];
     return fullFilePath;
 }

答案 1 :(得分:0)

我猜我的编译器出了问题

我让整个xcode项目再次复制所有代码和xib文件并且它现在正常工作

干杯谢谢