1

所以在我的最后一个问题中,我试图弄清楚我应该使用什么,Plist 或 Core data 或 sqlight,我决定我会尝试所有这些来提高我的技能。因此,我开始阅读有关 plist 及其工作方式的信息,但我不太确定一些事情。我正在编写的应用程序目的是为用户提供一些来自 plist 文件的不同流派的不同歌曲列表,如下所示:

图片

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

我很想知道我建议的东西是否行不通,以及这样做的更优雅的方法是什么。

谢谢

4

1 回答 1

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可以是一个模型对象,其属性为UIImage *picNSInteger numberNSString *name。您可以将这些 Song 对象添加到一个数组中,并使用该数组填充您的表格视图。用户选择列表后,您可以将保存的列表转换为字典并保存到 plist,如上所示。

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

于 2012-11-28T23:26:31.283 回答