您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

AnyObject在Xcode8 beta6中不起作用?

AnyObject在Xcode8 beta6中不起作用?

此答案的先前版本认为有警告,

‘是’测试总是正确的

作为错误,并讨论了为什么会出现这种错误的警告。但是,在运行时TestStruct() is AnyObject评估为false,这被认为是预期的行为。

给定OP(SR-2420)提交错误报告的注释,情况似乎相反:由于Xcode 8 / beta 6,is测试 始终评估为true,而OP:s发布的错误就是事实该TestStruct() is AnyObject计算结果为false运行时。

乔·格罗夫写道

这是正确的,因为所有内容都桥接到了AnyObject现在。

is/ as AnyObject现在对于所有类型总是成功的。它的行为符合预期。

(有关其他详细信息,请参阅下面的评论中的讨论,谢谢@MartinR)

似乎未明确实现为可通过_ObjectiveCBridgeable(例如)遵循_ObjectiveCBridgeable Swift值可与Obj-C对象桥接(取而代之的是,),而是自动使用新SwiftValue框来允许转换为Obj- C对象。

swift / stdlib / public / runtime / SwiftValue.mm的初始提交消息为:

如果没有更好的将Swift值映射到Objective-C对象以进行桥接的目的,我们可以退一步将值装在类中。除了NSObject在Objective- C中符合- 之外,此类没有任何公共接口,但是可以被Swift运行时识别,因此可以将其动态地转换回盒装类型。

其他 2022/1/1 18:18:18 有485人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶