ブロック嫌い。これらはコードをより簡潔にすることを目的としていますが、これ以上醜いものは見つかりませんでした。たとえば、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:)]
では、メソッドのセレクターをブロックとして使用することは可能ですか? そうでない場合、どうすればブロックコードを改善できますか?
これらのブロックはObjective-Cプログラミングの未来のように見え、単に読めないだけなので、私を悩ませています。