作爲一個例子,而不是寫這個:是否在塊參數中向下投射一個不好的做法?
NSArray *someArray = @[@"1", @"2", @"3", @"4"];
[someArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSString *aString = obj;
// do something
}];
您可以直接向下轉換的對象,如果你知道塊方法的常數,使其更consice:
[someArray enumerateObjectsUsingBlock:^(NSString *aString, NSUInteger idx, BOOL *stop) {
// do something
}];
這是否違背任何最佳實踐或oop原則?
請注意,就像在'void *'的情況下一樣,您不必施放'id'。 'NSString * aString = obj;'很好。 OMG! – 2012-11-16 19:56:57
OMG!啓示!我一定會在將來使用它! – Fogmeister
@ H2CO3啊好點。我會更新問題的清晰度 –