作为一个例子,而不是写这个:是否在块参数中向下投射一个不好的做法?
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啊好点。我会更新问题的清晰度 –