我可以在Objective C中使用泛型来定位iOS 8应用吗?

Joh*_*erg 4 generics objective-c ios

Objective C的新Xcode 7泛型功能是编译器功能还是需要iOS 9?

我可以定位iOS 8,但仍然使用泛型?

Tom*_*mmy 10

这是一个编译器功能.当你声明例如NSArray<NSString *> *,所有发生的事情是编译器将伪装而不是- addObject:(id)你已经得到- addObject:(NSString *),如果提供错误类型的参数,则生成适当的消息.

它仍然是Objective-C,一切都仍然是动态类型的.只有一个实现NSArray,无论泛型如何,它总是被使用,并且与以前一样.不会生成代码,也不会发生动态运行时恶作剧.

此外,所有类别都是如此,而不仅仅是NSArray.Apple轻量级泛型中的"轻量级"意味着您只提供编译时提示.