2016-07-12 5 views
0

私はすでに働いてコアデータと永続ストレージ機能を持ったアプリケーションを持っています。私はこのアプリで使用DATAStackが欲しい、私はそれが仕事を得ることができません。DATAStackライブラリは

DATAStackなければ私は私のAppDelegateにアルこれらの標準的なコア・データlazy var sでした。 let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext:私のViewControllerで私はこのようなmanagedObjectContextを取得しました。保存の世話をするだろう関数にmoc変数に合格し、どこかにラインの下のmoc.save()と呼ばれます。私はこれが動作することを知っている、私はまた検索し、アプリケーションを完全に閉じた後に動作する画面上に格納されたエントリを表示するため。そして、sqliteデータベースビューア(SQLite for SQLite Read-Only)でsqliteデータベースを調べます。

DATAStackでは、AppDelegatelazy var dataStack: DATAStack = DATAStack(modelName: "Database")に新しい行を追加しました。私のデータベースモデルの名前は確かDatabase.xcdatamodeldあるので、初期設定は右でなければなりません。私のViewControllerでは、let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).dataStack.mainContextで上記のvar moc = ...を置き換えました。このmoc変数が渡され、私はmoc.save()という行の下のどこかに電話をかけますが、今は何も格納しません。私が説明したように、変更されたのは管理対象オブジェクトのコンテキストの由来です。

私はこのライブラリで何かを見逃しているに違いありませんが、私は何が欠けているのか分かりません。

私はSync exampleSyncはDATAStackを使用しています)を見てきましたが、dataStackオブジェクトはそこにまったく異なる方法で取得されています。

答えて

0

明らかに、新しい背景コンテキストを保存するには、mainContextを使用しないでください。正しいモーションを得るための唯一の方法は次のようなものです:

dataStack.performInNewBackgroundContext() { moc in 
    //Do things with moc and call moc.save() somewhere 
} 
関連する問題