3

举个例子,而不是这样写:

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 原则?

4

1 回答 1

4

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

于 2012-11-16T20:07:10.063 回答