0

私は多くのフォーラムを取得しましたが、私が抱えている問題についてまだ答えが見つかりません.

ある URL からデータをロードします。受け取ったアイテムには、tableView でオブジェクトを表示するときに依存する「削除済み」プロパティが含まれています。

- (void)loadData
{
    [self showLoadingIndicatorView];
    [[RKObjectManager sharedManager] getObjectsAtPath:@"/api/news/index.json"
                                           parameters:@{@"auth_token" : [BMWConstants authToken]}
                                              success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
                                                  RKLogInfo(@"Load complete: Table should refresh...");
                                                  [super hideLoadingIndicatorView];
                                              } failure:^(RKObjectRequestOperation *operation, NSError *error) {
                                                  RKLogError(@"Load failed with error: %@", error);
                                                  [BMWSuperViewController showGhostAlert:error];
                                                  [super hideLoadingIndicatorView];
                                              }];


}

述語を使用してフェッチ結果コントローラーを作成します

(NSFetchedResultsController*)fetchedResultsController
{
if (_fetchedResultsController != nil)
{
return _fetchedResultsController;
}

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"News"];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"deleted = NO OR deleted = NIL"]];
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"createdAt" ascending:NO];
fetchRequest.sortDescriptors = @[descriptor];
[fetchRequest setFetchBatchSize:10];
NSError *error = nil;

_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:[RKManagedObjectStore defaultStore].mainQueueManagedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
[self.fetchedResultsController setDelegate:self];
BOOL fetchSuccessful = [self.fetchedResultsController performFetch:&error];
if (! fetchSuccessful) {
[BMWCenterViewController showGhostAlert:error];
}
return _fetchedResultsController;
}

[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"deleted = NO OR deleted = NIL"]];

ここからわかるように、述語はすべてうまく設定されています。

アプリケーションの2回目の起動時にはすべて機能しますが、最初の起動時には、述語を無視してJSONから受け取ったすべてのオブジェクトが返されます。オブジェクトを cellForRowAtIndexPath に記録すると、プロパティが存在します。

これで私を助けてもらえますか?

4

0 に答える 0