我正在制作我的第一个主要 iPhone 应用程序,在保存用户数据方面需要一些建议。我希望保存一个复杂的多维数组,例如包含一般信息和更多数据列表的联系人列表。
我在网上搜索了很长时间,发现了很多教程,但它们似乎有点模糊或不清楚。
保存此类数据的最佳做法是什么?如果有人可以指导我找到一个很好的教程,那就太好了。更新应用程序不会丢失保存的数据至关重要。
谢谢
我正在制作我的第一个主要 iPhone 应用程序,在保存用户数据方面需要一些建议。我希望保存一个复杂的多维数组,例如包含一般信息和更多数据列表的联系人列表。
我在网上搜索了很长时间,发现了很多教程,但它们似乎有点模糊或不清楚。
保存此类数据的最佳做法是什么?如果有人可以指导我找到一个很好的教程,那就太好了。更新应用程序不会丢失保存的数据至关重要。
谢谢
更新时 NSUserDefaults 不会丢失数据。
//Writing
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"anInt"];
[[NSUserDefaults standardUserDefaults] setDouble:1.2 forKey:@"aDouble"];
[[NSUserDefaults standardUserDefaults] setString:@"aString" forKey:@"aString"];
[[NSUserDefaults standardUserDefaults] synchronize];
//Reading:
int i = [[NSUserDefaults standardUserDefaults] integerForKey:@"anInt"]
保存在 plist 文件中:
// Copying the plist file
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
path = [[documentsDirectory stringByAppendingPathComponent:@"setting.plist"] retain];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path])
{
NSString *bundle = [[NSBundle mainBundle] pathForResource:@"setting" ofType:@"plist"];
[fileManager copyItemAtPath:bundle toPath: path error:&error];
}
settings = [[NSMutableDictionary alloc]initWithContentsOfFile:path];
用法 :
NSString *keyname = [[settings allKeys]objectAtIndex:0]; // Or indexPath.row
[settings setObject:@"yes" forKey:keyname]; //Setting Value
[settings objectForKey:keyname]; //Getting Value