Restkit 2.0取消 - 使用它的任何隐藏问题?

时间:2015-06-30 02:38:36

标签: ios restkit

我刚开始使用使用RestKit 2.0的代码库。

代码库中的一个问题是很多网络调用很难取消。

我看到一些网络方法很容易将操作返回给调用者,因此调用者可以随意取消它们。但是,界面并不容易支持。有没有人尝试编写自己的类别来揭露返回这些操作?

例如,

- (void)getObjectsAtPath:(NSString *)path
              parameters:(NSDictionary *)parameters
                 success:(void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
                 failure:(void (^)(RKObjectRequestOperation *operation, NSError *error))failure
{
    NSParameterAssert(path);
    RKObjectRequestOperation *operation = [self appropriateObjectRequestOperationWithObject:nil method:RKRequestMethodGET path:path parameters:parameters];
    [operation setCompletionBlockWithSuccess:success failure:failure];
    [self enqueueObjectRequestOperation:operation];
}

看起来像这样:

- (NSOperation *)getObjectsAtPath:(NSString *)path
              parameters:(NSDictionary *)parameters
                 success:(void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
                 failure:(void (^)(RKObjectRequestOperation *operation, NSError *error))failure
{
    NSParameterAssert(path);
    RKObjectRequestOperation *operation = [self appropriateObjectRequestOperationWithObject:nil method:RKRequestMethodGET path:path parameters:parameters];
    [operation setCompletionBlockWithSuccess:success failure:failure];
    [self enqueueObjectRequestOperation:operation];
    return operation;
}

如果有人试过这个并遇到问题,请告诉我。

1 个答案:

答案 0 :(得分:0)

这不是该过程中涉及的唯一操作。它涉及网络方面,但不涉及映射。这并不意味着它不可能,但它并不像你想象的那么容易。

RKObjectManager提供了一个界面,用于根据请求取消正在进行的操作,而不是更适合使用的特定操作。