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轻量级泛型中的"轻量级"意味着您只提供编译时提示.