0

API のユーザー オブジェクトに対して次のような JSON ビューがあるとします。

{
    "id": 1,
    "posts": [
        { "id": 102 },
        { "id": 101 },
        { "id": 100 }
    ]
}

posts 配列には 3 つ以上のアイテムが存在することはなく、最新の 3 つを表すと想定されています。ただし、既にダウンロードされているような投稿がさらにある場合{ "id": 99 }、RestKit はそれらが存在しないと見なし、ユーザー ビューの配列内の 3 つの投稿だけが残っていると見なします。

古い投稿を削除して新しい投稿のためのスペースを空けるのではなく、RestKit に新しく読み込まれた投稿を現在読み込まれている投稿とマージさせるにはどうすればよいですか?

これを行うためのより良い方法があれば、JSON を変更することにもオープンです。

これらは私のマッピングです:

RKEntityMapping *userMapping = [RKEntityMapping mappingForEntityForName:@"User" inManagedObjectStore:managedObjectStore];
[userMapping addAttributeMappingsFromDictionary:@{
    @"avatar_url": @"avatarURL",
    @"id":         @"userID",
    @"first_name": @"firstName",
    @"last_name":  @"lastName",
    @"username":   @"username",
    @"followed":   @"followed"
}];
userMapping.identificationAttributes = @[@"userID"];

RKEntityMapping *postMapping = [RKEntityMapping mappingForEntityForName:@"Post" inManagedObjectStore:managedObjectStore];
[postMapping addAttributeMappingsFromDictionary:@{
    @"id":          @"postID",
    @"content_url": @"contentURL",
    @"created_at":  @"createdAt"
}];
postMapping.identificationAttributes = @[@"postID"];

[userMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"posts"    toKeyPath:@"posts"   withMapping:postMapping]];
[postMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"creator"  toKeyPath:@"creator" withMapping:userMapping]];

[postMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"replies"  toKeyPath:@"replies" withMapping:postMapping]];
[postMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"reply_to" toKeyPath:@"replyTo" withMapping:postMapping]];
4

1 に答える 1