DrM*_*uer 16 generics xcode objective-c ios
Xcode 7包含一个Objective-C变体,您可以在其中定义(同质)NSArray返回值和属性的类型提示,定义如下NSArray<UIImage*>.
我想使用这个功能来重写我的JSON-deserializer类(需要这种类型的提示 - 之前我已经通过-(Class)jsonHintForKey:(NSString*)key在我的类中添加了一个同源数组作为属性来解决这个问题.)
你知道我是否可以使用Objective-C运行时在运行时获取这个新类型提示的类吗?
Gui*_*gis 31
Xcode 7中引入的轻量级泛型只是编译时提示,以帮助编译器发出警告,但在运行时,您的变量只是NSArrays的变量id.
资料来源:WWDC '15"Swift和Objective-C互操作性"会议
看到谈话的记录:
因此,整个轻量级泛型功能基于类型擦除模型.这意味着编译器具有所有这些丰富的静态类型信息,但它在生成代码时会删除该信息.
这样做是不可能的.
在Objective-c中引入了泛型,以改善swift和objective-c之间的桥梁.它给objective-c的优势仅在编译时有用,而且我在运行时丢失了信息.
| 归档时间: |
|
| 查看次数: |
3419 次 |
| 最近记录: |