RestKit バージョン 0.2 を使用していますが、次のように RKRequestOperation を呼び出すと、UI がブロックされます (つまり、UI が途切れたり応答しなくなったりします)。
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
NSString *urlString = [NSString stringWithFormat:@"http://localhost:8080/models?offset=%d&rows=%d", _offset, _numRows];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
RKObjectRequestOperation *operation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[_responseDescriptor]];
[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *result) {
NSLog(@"Got models: %@", [result array]);
[self addModelsToView:[results array]];
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"FAILED!");
}];
[operation start];
}
もう少し背景:
新しいモデルビューを無限にロードするためにこれを行っていますUIScrollView
。ユーザーがビューの一番下までスクロールしたことを検出し (座標ロジックは編集済み)、上記のように RestKit を使用してビューの次のセットをロードし、モデルが戻ってきたら、それらを のスクロール ビューにロードしますaddModelsToView
。コメントアウトしてaddModelsToView
も途切れ途切れのロジックが残るので、RestKit (または少なくとも私がそれをどのように使用しているか) と関係があると確信しています。
RestKit について私が理解していることは、それが非同期でロードされるということです。
前もって感謝します!