2012-01-24 20 views
-3

仮説の形で尋ねると、簡単に説明することができます。iOS - NSMutableArrayをiPhoneに保存する

私はPersonというクラスがあり、この中には三つのフィールドがあります。

  • NSString *nameを。
  • NSDate *dateOfBirth;および
  • NSMutableArray *friends

例オブジェクトは、このです:

  • name = "ジョン・スミス"
  • dateOfBirth = 1985年1月4日
  • friends = "サイモン・スコット"。 "ジェニファーレーン"; "Mary Firth"

ユーザーがNSMutableArrayに必要なデータを入力すると、このデータをiPhoneに保存するにはどうすればよいでしょうか?私はPersonオブジェクトが最大100個存在することが予想され、UITableViewにこのデータを表示し、ユーザが自分の意志でエントリを追加したり削除したりできるようにするだけです。

NSDictionariesを使用し、writeToFileメソッドを使用するこのサイトでは複数の提案がありましたが、これらのうちの1つを調べる前に、誰かが正しい方向に向けることを望んでいましたか?私は、そこにある最も簡単で最も適切な方法を使用するようにしたいと思います。

多くのありがとうございます。

+0

[iPhone上にNSArrayを格納するための推奨方法は何ですか?]の可能複製(http://stackoverflow.com/questions/8574924/what-is-the-recommended-way-to-store-an-nsarray – Caleb

+0

)iphone--on「...しかし、私はこれらのいずれかを研究する前に...」あなたの最初の研究は、[関連] SOの関連質問を探すためにする必要があり、また、読むために(http://developer.apple。COM /ライブラリ/ IOS /ドキュメント/ココア/概念/アーカイブ/ Archiving.html#// apple_ref/DOC/UID/10000047-SW1)[ドキュメント](http://developer.apple.com/library/ios/documentation/ Cocoa/Conceptual/PropertyLists/Introduction/Introduction.html#// apple_ref/doc/uid/10000048-CJBGDEGD)。 – Caleb

答えて

0

@Achiral、

それは本当にあなたがデータとどのように関係あなたのコードの柔軟性と一緒にいると何をしたいかに依存します。

しかし、私は、CoreDataを使用してSQLliteデータベースを作成し、上記のプロパティを持つ 'Person'エンティティを作成することをお勧めします。あなたがCoreDataに精通しているかどうかはわかりませんが、iOS上で高度に最適化されていて、データモデルを作成するための単純な「空白を埋める」スタイルフォームがあるため、使い方は簡単です。また、CoreDataは、iOSおよびOS Xアプリケーションにデータを格納するために広く受け入れられ、サポートされている方法です。

こちらがお役に立てば幸いです。

+0

コアデータは一般的に高度なトピックとみなされます。あなたが始めているのであれば、プロパティリストやアーカイブを使う方が良いでしょう。 – Caleb

+0

@Calebは、私はPLISTまたは類似した何かへの書き込みと言うよりも、より高度であることに同意しますが、それは本当にすべてのこと難しいことではありませんし、CoreDataのオンライン初心者のためのリソースこれらの日がいくつかあります。また、Cocoa/Cocoa Touchデベロッパーとしての成長を傷つける良い方法は、CoreDataを恐れることです。 :) – mdominick

+0

恐怖とKISSの違いがあります(Keep It Simple Stupid)。 1はコアデータに読まなければならない非常に最初の文書は、部分的に述べている:(http://developer.apple.com/library/ios/referencelibrary/GettingStarted/GettingStartedWithCoreData/_index.html [コアデータは、エントリーレベルの技術ではありません。] #// apple_ref/doc/uid/TP40005316-CH1-SW3)最初に知っておくべきことがたくさんあります。対照的に、 '[people writeToURL:someURL atomically:NO];は死んで単純で、おそらくすべてのOPがこの時点で必要です。あなたのアプリを書くのを楽しくすることができるときに、なぜオーバーエンジニアリングでうんざりするのですか? – Caleb

1

Property List Programming Guideをご覧ください。限り、あなたはあなたのデータのためのオブジェクトタイプのコアセットに固執として、あなたはこのように、1行にあるファイルやURLからデータを読み書きすることができます

[people writeToURL:someURL atomically:NO]; 

あなたに言及したタイプ質問(文字列、日付、配列、辞書)はすべてプロパティリストに書き込むことができます。

+0

...私はここで悪意に満ちたものではない、実際にしていますが、私自身はCDを使用し、PLISTに書いていないために残忍なコードレビューを経てきました。 –

関連する問題