Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Restkit 2.0取消-使用它有任何隐藏问题吗?_Ios_Restkit - Fatal编程技术网

Ios Restkit 2.0取消-使用它有任何隐藏问题吗?

Ios Restkit 2.0取消-使用它有任何隐藏问题吗?,ios,restkit,Ios,Restkit,我刚刚开始使用RESTKit2.0的代码库 代码库中的一个问题是大量难以取消的网络调用 我看到一些网络方法可以很容易地将操作返回给调用者,以便调用者可以随意取消它们。然而,这个接口并不容易支持这一点。是否有人尝试编写自己的类别来公开这些操作 比如说, - (void)getObjectsAtPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void

我刚刚开始使用RESTKit2.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;
}

如果有人尝试此操作并遇到问题,请告诉我。

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


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

True,但如果这些操作与路径匹配,它将取消所有操作。当两个视图控制器发出相同的请求,其中一个取消请求时,就会出现问题。