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 が指摘したように、オブジェクトはidキャストなしで前後に割り当てることができます。

于 2012-11-16T20:07:10.063 に答える