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 是一种非常实用的语言,它的特性在现实世界中很有用,块之类的东西非常有用,但在我的经验中,命名空间和类型化数组之类的特性并没有那么多。我在我的代码中添加了很多 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 回答