Objective-C代码块问题

Objective-C代码块了解不是很透彻
有如下代码:

- (void)chatListWithMessageId:(NSString*)messageId
                      success:(void (^)(GRNetworkResponse *response))success
                      failure:(void (^)(GRNetworkResponse *response))failure
{
   
    /*
    DO SOME STUFF
    ...
    */
            success(response);
        }
    } failure:^(GRNetworkResponse *response) {
        failure(response);
    }];
}
  1. 这里的 success(response)failure(response)调用作用?

  1. 方法里面的代码块声明并没有给代码块命名,例如void (^success)(GRNetworkResponse *response),为什么可以success(response)这样调用?
    这样调用又有何用处?

  1. 而且很多其他网络请求的带有代码块的方法中没有类似的调用!

查看回复