Я ненавижу блоки. Они предназначены для того, чтобы сделать код более лаконичным, но ничего более уродливого я не нашел. Например, с AFNetworking:
AFJSONRequestOperation* operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
requestsuccess:^(NSURLRequest *request, NSURLResponse *response, id JSON) {
// Some
// very
// long
// (and as ugly as blocks)
// processing
}
failure:^(NSURLRequest *request, NSURLResponse *response, NSError *error, id JSON )) {
// Failure code
}]
Что-то вроде этого было бы намного лучше:
AFJSONRequestOperation* operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
requestsuccess:@selector(requestSuccess:response:json:)
failure:@selector(requestSuccess:response:error:)]
Итак, можно ли использовать селекторы методов как блоки? Если нет, как я могу улучшить блочный код?
Меня это раздражает, так как эти блоки кажутся будущим объективного -c программирования, и они просто НЕ читаемы.