具有静态类型检查的单态数组

时间:2013-04-20 00:35:45

标签: objective-c

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

我需要多长时间才能实现这个目标?有没有人有扩展clang来支持类似功能的经验?

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

2 个答案:

答案 0 :(得分:0)

我也考虑过这一点,但最后我会问它会不会让我更有成效。 Objective-C在我看来是一种非常实用的语言,它具有真正有用的功能,像块这样的东西是非常有用的,但在我的经验中,像命名空间和类型数组这样的功能并没有那么多。我在我的代码中添加了很多NSAssert来检查这样的东西。通常我的可变集合包含在其他类中,所以我对可以添加到它们的内容有很多控制权,但也许这是我采用的模式,因为我没有类型集合?

答案 1 :(得分:0)

嗯,从技术上讲,你已经可以......

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

或者,更有用的是,您可以使用Objective-C ++。