0

mainViewController と呼ばれるカスタム UITableViewController があります。

ヘッダーファイルにパブリックプロパティがあります

@property (strong, nonatomic) NSMutableArray *someGroups;

このプロパティはviewDidLoadメソッドで設定されます

_someGroups = [[GGGroups findAllSortedBy:@"lastUpdated" ascending:NO withPredicate:[NSPredicate predicateWithFormat:@"ANY users = %@", [GGUser currentUser]]] mutableCopy];

ただし、何らかの理由で、ビューが読み込まれると、次のように呼び出すと、 0 objects が返されます

[[GGGroups findAllSortedBy:@"lastUpdated" ascending:NO withPredicate:[NSPredicate predicateWithFormat:@"ANY users = %@", [GGUser currentUser]]] mutableCopy];

この配列はデータ ソースであるため、特にテーブル ビュー コントローラーを使用する場合は非常に面倒ですreloadData。このメソッドは 0 オブジェクトを返すため、テーブル ビューは空白になります。

私は現在 MagicalRecord を使用していますが、なぜこれが発生するのか誰にもわかりません。

ありがとうございました!

4

1 に答える 1

0

find* リクエストをキャッシュする MagicalRecord には何もありません。find メソッドを呼び出すたびに、新しいリクエストが生成され、その新しいリクエストに対して新しいフェッチが実行されます。2 番目のフェッチが失敗する理由についての私の推測:

  1. デフォルトのコンテキスト (指定しないことで暗黙的に使用している) はどういうわけか nil です
  2. currentUser メソッドが nil を返しています
  3. その 2 番目の呼び出しでは、データ ストアは空です
  4. 適切なタイミングでデータをリロードするために実際にメソッドを呼び出していません
  5. データのビューを更新していません

MagicalRecord にはログが組み込まれています。有効にして、ログにエラーが表示されるかどうかを確認することをお勧めします。これらは、Core Data で発生する可能性のある問題を特定するのに役立ちます。

于 2013-05-20T22:08:24.797 に答える