首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >@encode的Swift等效项

@encode的Swift等效项
EN

Stack Overflow用户
提问于 2014-06-28 00:29:09
回答 1查看 2.6K关注 0票数 21

是否有一个与Objective-C的@encode相当的Swift

例如

代码语言:javascript
复制
@encode(void *) // -> @"^v"

搜寻一无所获。

EN

回答 1

Stack Overflow用户

发布于 2014-08-03 01:27:00

不,没有-因为在幕后,Swift类不使用Objective-C自省来完成他们的工作。不需要为了传递/调用数据而计算这个(就像Objective-C中那样)。

但是,如果您需要在运行时动态使用它(例如,为了与现有的Objective-C方法进行互操作),那么您可以创建一个Objective-C调用并传递对象,或者(对于简单类型)编写一个查找表。

类型编码在具有映射的https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html中列出,并且可以编写执行查找的开关类型语句。

但从根本上说,如果你有一个想要传入的类型,并且发现它是objective c编码类型,你可以使用NSObject的objCType方法:

代码语言:javascript
复制
var i = 1 as NSNumber
String.fromCString(i.objCType)! == "q" 

如果您需要将其作为未受干扰的C字符串传递,您甚至可能不需要将其转换回Swift字符串类型。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24456674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档