首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反射Swift 2.0 XCode 7测试版5

反射Swift 2.0 XCode 7测试版5
EN

Stack Overflow用户
提问于 2015-08-20 00:51:18
回答 2查看 1.8K关注 0票数 2

苹果在XCode 7 beta 5中更改了Swift反射。全局反射()函数消失了,你必须这样做:

代码语言:javascript
复制
let mirror = Mirror(reflecting: object)

它以一种更好的方式提供了或多或少相同的信息(对于属性名和值,不再使用.1或.2 )。但是我找不到一种方法来探索镜像的项是否是一个类的实例。对于较旧的实现,您可以检查以下内容:

代码语言:javascript
复制
reflectedProperty.1.objectIdentifier != nil || reflectedProperty.1.count > 0

但objectIdentifier似乎消失了,无论类型如何,计数始终为2。

对谁有帮助吗?

EN

回答 2

Stack Overflow用户

发布于 2015-08-20 04:46:47

好了,我找到了一个变通方法。我对mirror.children.enumerate()进行了迭代,它似乎创建了String类型的所有属性。相反,我深入研究了苹果的初步文档,并读到它可能是一个好主意,以“升级”儿童到例如AnyRandomAccessCollection。这使得可以依赖对象子级的计数来确定它是否是一个对象(在测试它是否是一个数组之后)

如果你对代码感兴趣的话,我现在有一个有效的Swift class to JSON序列化程序在这里工作:https://gist.github.com/peheje/cc3618253d4f38ea4885

票数 2
EN

Stack Overflow用户

发布于 2016-03-08 07:06:09

我不确定你是否在寻找这个,但是下面的输出是"Class“

代码语言:javascript
复制
mirror.displayStyle
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32101336

复制
相关文章

相似问题

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