将数据保存到每个对象或人的 plist

Posted

技术标签:

【中文标题】将数据保存到每个对象或人的 plist【英文标题】:Saving data to plist per object or person 【发布时间】:2010-08-08 01:12:46 【问题描述】:

我正在尝试将每个人的数据保存到我的应用程序中的 plist,但它会将其保存给每个人,因此例如,如果我有一个眼睛颜色字段并且我在 John Doe 的文本字段中输入 Brown,它会保存 Brown对于其他所有人,有没有办法在应用程序中保存每个人的信息,而不是使用 plist?我没有运气尝试:

-(NSString *)pathofFile
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docsfolder = [paths objectAtIndex:0];
    return [docsfolder stringByAppendingFormat:@"data.plist"];

这是我认为加载的代码:

- (void)viewDidLoad 
    [self loadPerson];
    [super viewDidLoad];

    NSString *filepath = [self pathofFile];
    if ([[NSFileManager defaultManager]fileExistsAtPath:filepath]) 
        NSArray *array = [[NSArray alloc]initWithContentsOfFile:filepath];
        Drinfo.text = [array objectAtIndex:0];
        [array release];
    

    UIApplication *app = [UIApplication sharedApplication];
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(applicationWillTerminate:) name: UIApplicationWillTerminateNotification object:app];

这是我的 saveperson 方法的一部分:

NSMutableArray *array = [[NSMutableArray alloc]init];
[array addObject:self.Drinfo.text];
[array writeToFile:[self pathofFile] atomically:YES];
[array release];

【问题讨论】:

一些代码会很有帮助。听起来您在构建数据结构以进入您的 plist 的代码中有一个相当基本的错误,如果我们能看到它,我们可能会很容易地修复它。 【参考方案1】:

您可以使用plist,只需为plist 中的每个人创建一个NSDictionary,然后将颜色字符串添加到其中。步骤类似于

    从文件中打开plist,将其设置为NSDictionary,并确保其为mutable copy。 创建一个新的NSMutableDictionary 并向其中添加任何属性,例如眼睛颜色。 将 mutable dictionary 添加到您的 plist dictionary,并将密钥设置为人名 保存plist

【讨论】:

以上是关于将数据保存到每个对象或人的 plist的主要内容,如果未能解决你的问题,请参考以下文章

从 plist 读取,然后将对象保存到不同的 plist iOS

保存数据 - 核心数据与 plist 文件

无法将数据保存到 Plist 中?

核心数据 - 将实体保存为 pList / 字典

如何将对象从 fetchedResultsController 到 Plist?

如何将自定义数组保存/重新加载到 plist