1

前回の質問で、Plist か Core データか sqllight のどれを使うべきかを考えてみましたが、スキルを向上させるためにそれらすべてを試してみることにしました。だから私は 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のプロパティを持つモデル オブジェクトにすることができます。これらの Song オブジェクトを配列に追加し、この配列を使用してテーブル ビューを設定できます。ユーザーがリストを選択したら、保存したリストを辞書に変換し、上記のように plist に保存できます。UIImage *picNSInteger numberNSString *name

これらはほんの一部のオプションです。さまざまな方法で行うことができます。

于 2012-11-28T23:26:31.283 に答える