Cla*_*ges 21 objective-c swift
Swift是否与Objective-C相当@encode?
例如
@encode(void *) // -> @"^v"
Run Code Online (Sandbox Code Playgroud)
搜索没有产生任何结果.
不,没有 - 因为在引擎盖下Swift类不使用Objective-C内省来完成他们的工作.没有必要计算这个(就像在Objective-C中一样)以传递/调用数据.
但是,如果您需要在运行时动态使用它(比如,为了与现有的Objective-C方法进行互操作),那么您可以创建一个Objective-C调用并通过该对象或(对于简单类型)编写查找表.
类型编码列在https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html,它们有地图,并且可以编写一个切换类型语句来执行抬头.
但是从根本上说如果你有一个你想要传入的类型并找到它的目标c编码类型,你可以使用NSObject的objCType方法:
var i = 1 as NSNumber
String.fromCString(i.objCType)! == "q"
Run Code Online (Sandbox Code Playgroud)
如果你需要将它作为一个不受干扰的C字符串传递,你甚至可能不需要将它转换回Swift字符串类型.
| 归档时间: |
|
| 查看次数: |
2286 次 |
| 最近记录: |