【发布时间】:2013-04-20 00:35:45
【问题描述】:
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
【问题讨论】:
-
等等。你愿意扩展编译器……你自己吗?
-
更好的解决方案是欺骗为此打开的众多雷达之一,以提高其被正式添加到语言中的机会(openradar.appspot.com/radar?id=2731402 就是一个例子)。以这种方式修改 ObjC 真的不是我建议单独做的事情。
-
你不能。我见过的最接近的是Typed Collections with Self Types in Objective-C。
-
PS
NSInteger不是一个对象,它是一些原始类型的 typedef :)
标签: objective-c