我正在查看AFNetworking的源代码(并且是Objective-C和AFNetworking的noob),我正在尝试理解一些继承的代码。看起来它们是没有返回任何内容的块,传入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
{
感谢任何帮助。 Thx提前
答案 0 :(得分:3)
success
和failure
参数是块,是Apple对C编程语言的扩展。块与匿名函数指针非常相似。
在这种情况下,它扮演了一个插入回调功能。如果路径成功获取,将调用success
回调,或调用failure
回调。
签名分别指定了这些回调块应该接受的参数。这些AFNetworking调用将提供这些参数的实际值。
答案 1 :(得分:2)
是的,那些是块。你看到的第一件事,开头的success
/ failure
是方法名称的一部分,当你将它传递给方法时,你将把它放在那个参数之前。 void
表示该块不返回任何值。 ^
尖叫“我是个街区!”在你身边该块有两个参数;一个AFHTTPRequestOperation *
在块内部被称为operation
,id
在块内被称为responseObject
。最后的success
/ failure
是整个块参数的名称,用于在接收它的方法中引用它。