1

Core Data で使用する場合の RestKit の削除セマンティクスは何ですか?

たとえば、primaryKeyAttribute組織エンティティの RestKit に a を正しく設定したとします。たとえば、GET を実行すると、 、、およびback/organizations/のエントリが取得されます。少し後でGET を実行し、エントリの往復のみを取得するとします。`/organizations/2/ はサーバー上で削除されました。/organizations/1//organizations/2//organizations/3//organizations//organizations/1//organizations/3/

RestKit が の Core Data レコードを削除することを期待し/organizations/2/ます。これは RestKit の機能ですか、それともこの動作を実装する必要がありますか? これは、reboot-networking-layer ブランチを使用している場合、何らかの変更がありますか? この動作に影響することを知っておく必要があるRestKitの設定はありますか?

4

1 に答える 1

2

これらのオブジェクトを削除するには、FetchRequests を実装する必要があります。簡単な例を次に示します。

    [objectManager addFetchRequestBlock:^NSFetchRequest *(NSURL *URL) {
    RKPathMatcher *pathMatcher = [RKPathMatcher pathMatcherWithPattern:@"/organizations"];

    NSDictionary *argsDict = nil;
    BOOL match = [pathMatcher matchesPath:[URL relativePath] tokenizeQueryStrings:NO parsedArguments:&argsDict];

    if (match) {
        NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Organization"];
        return fetchRequest;
    }

    return nil;
}];

これは ApplicationDelegate (RestKit をセットアップした場所) で行います。そこで実行すると、他のすべての呼び出しによって、孤立したオブジェクトが自動的に削除されます。

于 2012-12-18T06:44:38.970 に答える