0

プラットフォームはモノタッチ iPhone向けのアプリを開発しています。私はグローバルと呼ばれるクラスを持っています。「Globals」オブジェクトは、ゲーム中の UI と計算からエントリを収集します。

オブジェクトをシリアル化し、txt ファイルにストリーミングする予定です。そして、ゲームが再び起動したときにそれを回復します。(ユーザーが終了したプログラムのみをシリアル化したファイルを作成することを忘れないでください)

ユーザーがプログラムを終了した瞬間から、逆シリアル化されたオブジェクトを使用して続行します。

このままでいいの?それはベストプラクティスですか?または、ゲームの情報を常に保持するために他の方法を使用する必要があります。この目的のためのベストプラクティスについてコメントまたはアドバイスしてください。

4

3 に答える 3

2

SQLite ルートに行く場合は、SQLite.Net を見てください。既存のオブジェクトを保存し、コードをほとんど使用せずにロードします。

https://github.com/praeclarum/sqlite-net#readme

以下に例を示します。

// Add some extra atributes as needed to your existing class.
public class Stock
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    [MaxLength(8)]
    public string Symbol { get; set; }
}

SQLite db 接続を作成し、Stock クラスのテーブルが存在することを確認します。

var db = new SQLiteConnection("foofoo");
db.CreateTable<Stock>();

Stock インスタンスを DB に追加します...例.保存してください!

public static void AddStock(SQLiteConnection db, string symbol) {
    var s = db.Insert(new Stock() {
        Symbol = symbol
    });
    Console.WriteLine("{0} == {1}", s.Symbol, s.Id);
}

DB から 1 つ以上の Stock(s) を取得します....

public static IEnumerable<Stock> QueryValuations (SQLiteConnection db, int stock)
{
    return db.Query<Stock> ("select * from Stock where StockId = ?", Id);
}
于 2012-05-10T16:32:26.570 に答える
2

CoreData を実際に使用して、Globals オブジェクトからエンティティを作成する必要があります。Core Data を使用すると、より多くの機能 (iCloud 同期など) を利用できるようになりますが、オブジェクトの変更に応じて更新することもできます。アプリの終了時にのみ保存しない場合は、異常終了 (クラッシュなど) が発生した場合などに、ユーザーの変更が失われるリスクがあります。コアデータを見てください。オンラインには簡単なチュートリアルがたくさんあります。ここに 1 つがあります: http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started

于 2012-05-10T12:36:41.260 に答える
2

データ全体が一度にフェッチされるため、データのサイズによってはシリアライズとデシリアライズが少し遅くなる場合があります。これは小さなデータでも機能する可能性がありますが、coredata、plist、sqlite、NSUserDefaults などのネイティブ メソッドの方がより受け入れられます。CoreData と sqlite大規模なデータにも使用できます。

Sqlite チュートリアル

コア データ チュートリアル

NSUserdefaults チュートリアル

于 2012-05-10T12:56:52.280 に答える