0

私はいくつかのRestKitを持っており、それらはすべて同じ形式を使用しています。

[[RKClient sharedClient] get:endString queryParameters:params delegate:self];

私は、このように見えるすべてのユーザーの残りのデータを本質的に更新するmasterMethodを持っています

-(void)masterMethod
{
[self get1];
[self get2];
[self get3];
[self get4];
[self get5];
}

すべてのgetが上記のものと同じ形式である場合。このコードはすべて、デリゲートメソッドを含むクラスに含まれています。

- (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response

ただし、同じメソッドですべてのgive getを呼び出そうとすると、問題が発生していると思います。デリゲートのdidLoadResponseメソッドとdidRecieveResponseメソッドが重複しているか、リリースなどを取得しているようです。この巨大な呼び出しを処理するためにマスターキューを作成する方法はありますか?または、何か他の問題が発生しています。

masterMethod呼び出しのどこかでBAD_ACCESSエラーが発生します。

ありがとう、どんな助けでも大歓迎です。

4

1 に答える 1

0

何をしているのget?オブジェクトをプルダウンする場合は、isKindOfClassメソッドを使用して、オブジェクトを区別し、objectLoader:didLoadObjects適切に設定する必要があります。

- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {

    if ([[objects objectAtIndex:0] isKindOfClass:[Apple class]]) {

        Apple *apple = [objects objectAtIndex:0];

    }
    else if ([[objects objectAtIndex:0] isKindOfClass:[Banana class]]) {

        Banana *banana = [objects objectAtIndex:0];

    }
}

要求応答からデータを取得する場合は、要求オブジェクトにuserdataを設定してから、でuserdataを確認してrequest:didLoadResponseください。詳細については、RestKit:didLoadResponseで複数のリクエストを区別する:を参照してください。

于 2012-08-29T16:47:36.887 に答える