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
答案 0 :(得分:0)
我也考虑过这一点,但最后我会问它会不会让我更有成效。 Objective-C在我看来是一种非常实用的语言,它具有真正有用的功能,像块这样的东西是非常有用的,但在我的经验中,像命名空间和类型数组这样的功能并没有那么多。我在我的代码中添加了很多NSAssert来检查这样的东西。通常我的可变集合包含在其他类中,所以我对可以添加到它们的内容有很多控制权,但也许这是我采用的模式,因为我没有类型集合?
答案 1 :(得分:0)
嗯,从技术上讲,你已经可以......
UIView *views[] = {one, two, three};
NSInteger object = views[2];
或者,更有用的是,您可以使用Objective-C ++。