AnyObject在Xcode8 beta6中不起作用?

AnyObject在Xcode8 beta6中不起作用?,第1张

AnyObject在Xcode8 beta6中不起作用?

警告按预期起作用: 但是,

false
返回
TestStruct() is AnyObject

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

‘是’测试总是正确的

作为错误,并讨论了为什么会出现这种错误的警告。但是,在运行

TestStruct() isAnyObject
评估为
false
,这被认为是预期的行为。

给定OP(SR-2420)提交的错误报告的注释,情况似乎相反:由于Xpre
8 / beta 6,

is
测试 始终评估为
true
,而OP:s发布的错误就是事实该
TestStruct() isAnyObject
计算结果为
false
运行时。

乔·格罗夫写道:

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

AnyObject
现在。

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


SwiftValue
从Swift值转换为Obj-C对象的新框

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

似乎未明确实现为可通过

_ObjectiveCBridgeable
(例如)遵循
_ObjectiveCBridgeable

Swift值可与Obj-C对象桥接(取而代之的是,),而是自动使用新
SwiftValue
框来允许转换为Obj-
C对象。

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

运行时:实现一个不透明的“ SwiftValue” ObjC类来保存桥接值

如果没有更好的将Swift值映射到Objective-C对象以进行桥接的目的,我们可以退一步将值装在类中。除了

NSObject
在Objective-
C中符合- 之外,此类没有任何公共接口,但是可以被Swift运行时识别,因此可以将其动态地转换回盒装类型。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5662440.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存