問題タブ [magicalrecord]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1556 参照

objective-c - fetchResultController が MagicalRecord でどのように機能するかについて混乱している

私は NSOperation サブクラスを持っています。これがメインのメソッドです:

fetchResultController と defaultContext を次のように定義します。

[メッセージ保存] を呼び出すたびに、コンソール ログアウト: -NSManagedObjectContext(MagicalRecord) mergeChangesFromNotification: Merging changes to * DEFAULT 環境メインスレッドで *

しかし、NSFetchedResultsControllerDelegate が呼び出されることはありません。これは、FetchedResultsController を間違って設定したということですか? 私は完全に混乱しています。

前もって感謝します。

0 投票する
2 に答える
3481 参照

ios - UITableViewの例を使用したMagicalRecord

TableViewベースのアプリでMagicalRecordセットアップを使用した、できればバックグラウンドスレッドの処理(データのインポートとUIの更新のためのコールバック)を使用した優れたチュートリアルまたはサンプルプロジェクトがあるかどうかを誰かが知っていますか?私は本当に良いサンプルを見つけることができませんでした。前もって感謝します。

0 投票する
1 に答える
3029 参照

ios - MagicalRecord の Core Data が iCloud に保存されない

プロジェクトで MagicalRecord を使用しています。これまでのところ、SQLite ストアで問題なく動作しています。しかし今、iCloud に「アップグレード」して、iPhone と iPad のバージョンを同期させようとしています。

しかし、期待どおりに機能していません。アプリは引き続き同じように動作します。データは保存されて読み戻されますが、期待どおりに iCloud に保存されません。

私が行った唯一の変更は、MagicalRecord のセットアップです。

前:

後:

AAAAA はコード内の AAAAA ではなく、開発者プロファイルからの私のプライベート ID です。

出力ログで、iCloud が検出され、エラーが発生していないことを確認できます。また、コードをステップ実行してみましたが、すべて問題ないようです。

私は何が欠けていますか?イベントをリッスンする必要がありますか? iCloud で MagicalRecord を使用する方法の例を見つけることができませんでした。

MagicalRecord のバージョンは次のとおりです:
https://github.com/magicalpanda/MagicalRecord

0 投票する
1 に答える
1183 参照

iphone - magicpanda の MagicalRecord を使用したマルチリレーショナル データのインポート

マジカル パンダの MagicalRecord を使用して、json ファイルを SQLite-CoreData-Database にインポートしたいと思います。これは私のjsonファイルの内容です:

ファイルの内容を次のコア データ モデルにインポートしようとしています: データ モデルの画像: http://twitpic.com/8fa0y9

次のコードを使用して、json ファイルをインポートします。

インポートはエラーなしで機能しますが、SQLite データベースの内容を調べると、Ingredient-Table に 2 つの等しいエントリがあります。

データベースコンテンツの画像: http://twitpic.com/8fa0k3

現在、私はこの問題を解決するために無力であり、誰かが私を助けてくれればとても幸せです.

0 投票する
3 に答える
1725 参照

objective-c - NSFetchRequestのNSSortDescriptorがコンテキスト保存後に機能しない

次のように定義されたNSManagedObjectContextのGCDディスパッチキューで操作を行っています。

MR_contextThatNotifiesDefaultContextOnMainThreadMagicalRecordのメソッドです:

オブジェクトをフェッチして正しいキュー位置を指定した後、それらをログに記録し、順序は正しいです。ただし、2番目のログは完全にランダムであるように見え、ソート記述子は明らかに機能していません。

問題をに絞り込みました[self.backgroundContext save:&error]。バックグラウンドコンテキストを保存した後、ソート記述子が壊れます。

ソート記述子が機能しない理由がわかりません。コアデータの専門家が助けてくれませんか?

アップデート:

この問題はiOS4では発生しません。理由はスレッド分離モードとプライベートキューモードの違いにあると思います。MagicalRecordは、動作が異なるように見える新しい同時実行パターンを自動的に使用します。

アップデート2:

この問題は、バックグラウンドコンテキストの保存を追加することで解決されました。

アップデート3:

MagicalRecordは、コンテキストを再帰的に保存するメソッドを提供します。これで、私のコードは次のようになります。

そもそも使わなかったのが恥ずかしい…

しかし、なぜこれが役立つのかわかりません。説明を求めています。

0 投票する
2 に答える
993 参照

objective-c - 同じセッションで作成された関連オブジェクト間のフェッチ要求を使用してコアデータオブジェクトが表示されないのはなぜですか?

これは本当に奇妙な状況で、ここ数日解決するために戦ってきました。

CardエンティティにTo-Many関係を持つエンティティがありTransactionます。また、Magical Recordを使用して、データストアの管理に関する定型コードを削除しています。

私の問題は次の順序で発生します。

  1. Cardオブジェクトを作成する
  2. 次にTransaction、別のビューでオブジェクトを作成します
  3. トランザクション数を調べる[card.transactions count]と、サイズとして1が得られます
  4. ただし、同じコンテキストを使用してフェッチリクエストを実行すると、トランザクションは存在しません。私の述語は次のようになります。

    NSPredicate * predicate = [NSPredicate predicateWithFormat:@ "card ==%@ && delete == 0"、card];

つまり、ロジックは、トランザクションを保存した後にコンテキストを保存していない可能性があると言っていますが、奇妙なことに、アプリを終了してから再実行すると、トランザクションがそこにあります。カードを作成し、アプリを終了してからアプリを実行し、トランザクションを追加すると、手順1〜4も完全に機能します。その後、私の保存トランザクションコードは正常に機能します。

したがって、私の質問は、新しく作成された親オブジェクトに対してフェッチ要求を使用してオブジェクトが表示されないのはなぜですか。「新しく作成された」とは、子オブジェクトと同じセッションで作成されたことを意味します。

カードを作成するための私のコードは次のようになります。

次に、トランザクションを保存すると、コードは次のようになります。

動作していないコードは次のとおりです。

カードが同じセッションで作成された場合、countTransactionsは常に0を返します。ただし、アプリを終了して再起動すると、100%機能します。また、アプリを終了して再起動した後、カードに新しいトランザクションを追加するためにも機能します。

0 投票する
2 に答える
1537 参照

objective-c - NSFetchedResultsControllerが最初のフェッチでソートされない

でコアデータの問題が発生していNSFetchedResultsControllerます。親と子のエンティティの間には1対多の関係があります。プロパティ内の配列はchildFetchedResults.fetchedObjects並べ替えられませんnumber(数値はモデル内のint32プロパティです)。MagicalRecordコンビニエンスカテゴリメソッドを使用するかどうかは問題ではないようです。

ただし、まったく同じ並べ替え記述子を使用してフェッチされたオブジェクトの配列を並べ替えると、正常に機能します。

フェッチ要求のソート記述子を指定するときにCoreDataがSQLiteストアに渡すことができるコンパレーターのみを使用できることを私は収集します。しかし、SQLiteでは数値による並べ替えがサポートされている必要があるため、この場合は問題にならないように感じます。

誰かがこれを解決しましたか?ここで説明されている問題と同様の問題のように感じます:NSSortDescriptorが呼び出されていません

に関してはMR_requestAllSortedBy、それはMagicalRecordにあります、ここに実装があります:

0 投票する
1 に答える
1198 参照

iphone - importFromObject で MagicalRecord がクラッシュする:

ここで運が良ければ、私は少しアウトです。誰かが私を正しい方向に向けることができるかもしれません。MagicalRecord の importFromObject メソッドを機能させようとしています。私が持っているのはこれです:

  • iOS SDK 5.1
  • 基本的な XCode iPhone プロジェクトのセットアップ (空のアプリケーション、コアデータなし、ARQ)
  • プロジェクトに手動で追加された CoreData フレームワーク
  • 1 つのエンティティを含むコアデータ データ モデルを追加
  • エンティティには属性「タイトル」があります

Prefix.pch には以下が含まれます。

このコードはクラッシュします:

このメソッドの NSManagedObject+MagicalRecord.m でクラッシュします。

0 投票する
1 に答える
2113 参照

iphone - MagicalRecord を使用して現在のエンティティで新しいエンティティを作成する

既存のエンティティ (渡された) set set all values を使用して新しいエンティティを作成しようとしています。以下は、マネージド オブジェクト サブクラスで使用しているクラス メソッドです。

そして、私はそれを次のように呼びます:

何が起こっているかというと、新しいエンティティを作成するのではなく、現在のエンティティを変更しています。私が間違っていることについてのアイデアはありますか?

0 投票する
2 に答える
5781 参照

objective-c - Magical Record、保存、NSFetchedResultsController

これが Magical Record のセーブ方法の問題なのか、それともどこかで単純なミスを犯しているだけなのかはわかりません。

NSFetchedResultController (FRC) と UITableView を使用してエンティティのリストを表示しています。ユーザーがエディタで新しいビュー コントローラを [追加] をタップすると、新しいエンティティが で作成され[MyEntity MR_createEntity]ます。ユーザーは、関係を介してメイン エンティティに追加される追加のエンティティをここに追加できます。ユーザーがこのView Controllerで「保存」をタップすると、コンテキストが保存されます[[NSManagedObjectContext MR_contextForCurrentThread] MR_save]

NSFetchedResultsController は更新されているように見えますが、タップしてエンティティを編集すると、子エンティティはありません。デバッグは、エンティティが保存されていても、FRC には一時 ID を持つエンティティがまだあることを示しているようです。

[self.tableView reloadData]FRCcontrollerDidChangeContentデリゲートメソッドで素朴にやっています。

アプリケーションを再起動すると、正しいエンティティが読み込まれ、子エンティティがエディター ビュー コントローラーに正しく表示されます。

FRC は「メイン スレッド」の保存イベントに応答しているように見えますが、保存は実際にはバックグラウンド スレッドで行われているため、FRC はそれを認識していません。確認したところ、すべての「自分の」操作 (FRC の設定、エンティティの作成とフェッチ) はすべてメイン スレッド コンテキストで行われています。

MR_rootSavingContext で変更通知をリッスンし、それらをメイン スレッド コンテキストとマージしようとしましたが、これはうまくいきましたが、FRC で行が重複してしまいました (1 つは正しい「永続的な」エンティティで、もう 1 つは一時的なエンティティでした)。