3

現在オンラインで実行されているWebアプリケーション用のiPhoneアプリを開発しています。現在のWebアプリケーションは、データを保持するためにtxtファイルを使用しています。現在のシステムは、独自の標準を使用してデータをファイルに保持し、カスタムアルゴリズムを作成してデータを読み書きします。各txtファイルのサイズは1MB未満です。多くのデータ操作が行われています。

それで、私がiPhoneアプリに選びたいものと同じものを実装しながら?アップルのウェブサイトでは、「SQLiteは低レベルのリレーショナルデータベース作業に最適です」と述べてい ます。https://developer.apple.com/technologies/ios/data-management.html しかし、私の場合は高レベルです。

だから私が決定を下すのを手伝ってください。コアデータを使用してファイルまたはsqliteデータベースのデータを管理しますか?それぞれのプロンとコンクは何ですか?ファイルの使用中にメモリの問題やパフォーマンスの問題はありますか?

2013年9月2日編集


回答ありがとうございます'user76859403'。現在のWebアプリケーションは、メンバーの詳細やログイン資格情報などの重要な情報を保存するためにもデータベースを使用しており、その他のものはファイルに保存されます。現在のシステムにはさまざまなセクションがあり、それらすべてのセクションにはいくつかのサブセクションと関連情報があります。そのようなセクションとその詳細はファイルに保存されます。作成されたカスタムアルゴリズムは、これらのファイルを読み取り、すべてのデータをレコードとしてキャッシュに入れ(コアデータのmanagedobjectcontextと同じ)、データに変更があるたびにファイル全体が上書きされます。また、Webサーバーで使用しているクラスとアルゴリズムをiOSにインポートできるかどうかを知りたいので、iOS用に同じアルゴリズムを書き直す時間を節約できますか?現在のサーバーコードはC#です

4

2 に答える 2

3

まず、Webサーバーがデータをテキストファイルに保存し、データを操作するためのアルゴリズムをカスタマイズしているのは奇妙だと言わざるを得ません。多くのデータ操作が行われていることを考えると、これは私には非常に非効率的です。私の意見では、データベースの方が良いでしょう。

ただし、あなたの側から見ると、それはすべてサーバーから処理しているデータに依存します。以下を使用できます。

  1. SqlLiteまたはCoreData-これらのアプローチを使用することは、進むべき1つのルートです。ただし、データをテーブルなどに分類するという余分な作業が必要になる場合があります。通常のデータベースのものです。SqlLiteとCoreDataまたはGoogleの違いについて少し理解するには、このリンクの回答を参照してください。

  2. サーバーで行われているのと同じように、データをファイルに保存するだけです。これを行うには、プロパティリストファイルなどを含むいくつかの方法があります。NSCodingを使用してこれを行う1つの方法を次に示します。

アプローチ#1のアプローチには、編成と速度の点で利点があります(リレーショナルデータベースには利点があります)。ただし、欠点は、これを正しく設定するのに時間がかかることです。

アプローチ#2は、データの構造などを考慮する必要がなく、ダンプして保存するだけなので、時間を節約できる可能性があります。ただし、サーバーデータのサイズは増加する可能性がありますか?速度は処理の要因ですか?などなど。短期的な修正だけでなく、長期的なことも考えてください。このアプローチは、データが比較的同じで負荷が小さい場合に適しています。

私の意見では、選択するアプローチは、データの負荷と将来のプロジェクトの範囲(迅速な修正、または現在のシステムの長期的な改善)に大きく依存します。

于 2013-02-07T13:31:26.580 に答える
0

「高レベル」のものを扱う場合は、CoreDataを使用することを強くお勧めします。また、mogeneratorhttps ://github.com/rentzsch/mogeneratorをチェックアウトします。このすばらしいチュートリアルは、始めるのに役立ちます:http ://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started

  • ヨハネス
于 2013-02-07T12:44:34.310 に答える