在块参数内下击是不好的做法?

时间:2012-11-16 19:54:04

标签: objective-c ios

作为一个例子,而不是写这个:

NSArray *someArray = @[@"1", @"2", @"3", @"4"];
[someArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    NSString *aString = obj;
    // do something
}];

如果您知道块方法中的常量,可以直接向下转换对象,以使其更加简洁:

[someArray enumerateObjectsUsingBlock:^(NSString *aString, NSUInteger idx, BOOL *stop) {
    // do something
}];

这是否违反任何最佳做法或oop原则?

1 个答案:

答案 0 :(得分:4)

我很确定这很好。只要你知道数组中的内容,就可以自由地静态输入id个参数。无论如何,它在一天结束时主要是语法糖。我总是静态地输入任何我能做的。它可以帮助我捕获错误并使事情更容易阅读。此外,正如H2CO3指出的那样,可以将对象分配给id并返回而不进行强制转换。