1

我正在查看 AFNetworking 的源代码(我是 Objective-C 和 AFNetworking 的菜鸟),并试图理解一些继承的代码。看起来它们是不返回任何内容的块,传入 AFHTTPRequestOperation 以及响应或 NSError。这是块定义吗?最后的成功/失败意味着什么?我认为这类似于成功:MyParam(NSString *)my_param。就像一句话就足够了。

- (void)getPath:(NSString *)path
     parameters:(NSDictionary *)parameters
        success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
        failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{

任何帮助表示赞赏。提前谢谢

4

2 回答 2

3

和参数是块successfailureApple 对 C 编程语言的扩展。块与匿名函数指针非常相似。

在这个场景中,它扮演了一个插入式回调函数的角色。如果成功获取路径,则success调用回调,或者failure调用回调。

签名分别指定了这些回调块应接受的参数。这些参数的实际值将由该 AFNetworking 调用提供。

于 2013-01-04T19:37:19.970 回答
2

是的,这些是块。您看到的第一件事,开头的success/是方法名称的一部分,当您将它传递给方法时,您将在该参数之前放置它。failure表示该void块不返回任何值。尖叫声“^我是一个街区!” 在你。该块有两个参数;aAFHTTPRequestOperation *被称为operation块内,而 aid被称为responseObject块内。末尾的success/是整个块参数的名称,用于在接收它的方法中引用它。failure

于 2013-01-04T19:41:52.973 回答