将对象从plist文件复制到另一个plist文件

时间:2012-11-28 23:22:29

标签: ios plist

所以在我的上一个问题中,我试图找出我应该使用什么,Plist或Core数据或sqlight,我决定我会尝试所有这些来提高我的技能。 所以我开始阅读关于plist和他们的工作方式,我不太确定一些事情。我正在编写的应用程序目的是为用户提供一些来自plist文件的不同类型的不同歌曲列表,如下所示:

pic

用户将选择他喜欢的歌曲并将其添加到新列表中。 我可以复制歌曲(在我的情况下是plist文件中的简单词典)并从中创建一个新的plist。或者我应该使用堆栈或数组来推送歌曲并使用表视图作为插座?最终,我希望用户保存他创建的播放列表。

我很想知道我所建议的某些内容是否会起作用,这样做的方法更为优雅。

由于

1 个答案:

答案 0 :(得分:1)

尝试这样,

NSString *plistFileName = [[self documentPath] stringByAppendingPathComponent: @"Original.plist"];


if ([[NSFileManager defaultManager] fileExistsAtPath:plistFileName]) {
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistFileName];
}

在表格视图中显示此数据,并要求用户选择歌曲。将选定的一个保存在另一个字典中,

    NSDictionary *savedPlayListDict = //saved songs

    NSString *fileName = [[self documentPath] stringByAppendingPathComponent: @"SavedList.plist"];
    [savedPlayListDict writeToFile: fileName atomically:YES];

或者您可以创建自己的模型类,以便在字典中保存键值对,并使用它来表示表的每一行。

例如: - Song可以是具有[{1}},UIImage *picNSInteger number属性的模型对象。您可以在数组中添加这些Song对象,并使用此数组填充表视图。用户选择列表后,您可以将保存的列表转换为字典并保存到plist,如上所示。

这些只是几个选项。你可以用很多不同的方式做到这一点。