1

AFIncreementalStore の gitHub ページに含まれている例を見て、http://apiurl.com/usersのような URL からリモート API からオブジェクトを要求するプロセスを理解していると思います。基本的に、たとえば UsersListViewController で次のようにします。

    NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"User"];
    fetchRequest.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"userID" ascending:YES]];
    fetchRequest.returnsObjectsAsFaults = NO;

    _fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[(id)[[UIApplication sharedApplication] delegate] managedObjectContext] sectionNameKeyPath:nil cacheName:nil];
    _fetchedResultsController.delegate = self;
    [_fetchedResultsController performFetch:nil];

http://apiurl.com/users/1/postsなどの URL から「投稿」のようなものを取得する方法を理解するのに苦労しています。

私の最初の考えは、フェッチ要求に述語を追加することです。

    NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Post"];
    fetchRequest.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"createdAt" ascending:YES]];
    fetchRequest.returnsObjectsAsFaults = NO;
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userID == %@", userID];        
    [request setPredicate:predicate];

    _fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[(id)[[UIApplication sharedApplication] delegate] managedObjectContext] sectionNameKeyPath:nil cacheName:nil];
    _fetchedResultsController.delegate = self;
    [_fetchedResultsController performFetch:nil];

この述語を追加すると、この URL を使用して GET 要求が生成されますか (述語で使用したユーザー ID が 1 であると仮定します)? http://apiurl.com/users/1/posts

4

0 に答える 0