0
id<UIView> views = @[one, two, three];  
NSInteger object = [views lastObject]; // Compiler will warn me that `views` stores only UIViews

これをどこまで実装する必要がありますか?同様の機能をサポートするためにclangを拡張した経験のある人はいますか?

類似: nsmutablearray-force-the-array-to-hold-specific-object-type-only

4

2 に答える 2

0

これについても考えましたが、最終的には、実際に生産性が向上するかどうかを尋ねます. Objective-C は非常に実用的な言語のように思えます。Objective-C が持つ機能は実世界で役立ちます。ブロックのようなものは非常に便利ですが、名前空間や型付き配列のような機能は私の経験ではあまりありません。そのようなものをチェックするために、コードに多くの NSAssert を追加します。通常、私の変更可能なコレクションは他のクラスに含まれているため、それらに追加できるものを多く制御できますが、型付きコレクションがないために採用するパターンでしょうか?

于 2013-04-20T00:48:06.977 に答える
0

まあ、技術的にはすでにできます...

UIView *views[] = {one, two, three};  
NSInteger object = views[2]; 

または、より便利な方法として、Objective-C++ を使用できます。

于 2013-04-20T02:36:57.537 に答える