由于所有通常都会提出这些问题的人我都是iPhone SDK编程的新手,而且我花了很多时间来自己找到解决方案。 所以,我需要将很多diff数据类型的应用程序数据(bool,string,int,float,double,int数组,双数组和指针数组)保存到文件中。有许多表单,包括字段,应用程序设置等。我需要保存用户退出应用程序,或者意外终止。用户可以使用字段来处理尽可能多的表单。需要使用文件在其他设备上打开包含所有填写表单和应用程序集的项目。 我的麻烦是我无法找到以何种方式将所有数据写入文件。我尝试了两种不同的方法。 1st:使用表单数据填充数组,为每个表单填充NSMutableArray和这样的数组。但是对于NSMutableArray,有一个方法(void)addObject:(id)anObject,我没有找到如何从每个数组(或其他任何东西)获取(id)anObject来添加项目。 第二个我试过使用:NSMutableData。同样的麻烦:填写我的数据我需要将它们转换为Data((void)appendData:(NSData *)otherData)。在这两种情况下,无法使用我的数据正确填充该类的对象。我无法将其保存到文件中。 也许有更好的解决方案?对任何帮助都会非常有帮助。
答案 0 :(得分:1)
NSNumber通常是基本的东西(整数,布尔和双打/浮点数等)。例如:
NSNumber *aBool = [NSNumber numberWithBool:YES];
NSNumber *aFloat = [NSNumber numberWithFloat:1.0f];
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
[settings setValue:aBool forKey:@"some_key"];
你可以添加到NSUserDefaults的字符串因为它们已经是对象(我相信它符合NSCoder),而对于NSArrays,只需使用writeToFile:方法:
NSArray *someArray = [NSArray arrayWithObjects:@"foo",@"bar",@"etc",nil];
[someArray writeToFile:@"filename" atomically:YES];