我讨厌块。它们旨在使代码更简洁,但我找不到更难看的东西。例如,对于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编程的未来,而且它们只是不可读。
起初,块可能看起来很丑,但它们很强大,有一些特定的原因,它们似乎是未来。我会建议你这篇文章有一个很好的见解:http://ios-blog.co.uk/articles/tutorials/programming-with-blocks-an-overview/ – Alladinian 2012-07-05 20:09:37
块不会使代码更简洁,他们使代码更强大。 – dreamlax 2012-07-05 20:30:42
我认为这是一个有效的问题。由于块既可以接收参数(0..n)并返回一个参数或void,方法应该可以用作块...或者换句话说,在类级定义块将会很好。我不认为你可以... – 2015-01-10 21:36:50