我討厭塊。它們旨在使代碼更簡潔,但我找不到更難看的東西。例如,對於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