gpt4 book ai didi

swift - 如何测试泛型变量是否为 AnyObject 类型

转载 作者:搜寻专家 更新时间:2023-10-31 21:59:39 26 4
gpt4 key购买 nike

<分区>

在 Swift 3 中,我无法再检查泛型变量类型是否为类 (AnyObject)。以下代码为 isObject 返回 true,即使特定类型 T 和传递的值是结构而不是类。在 Swift 2.3 和 2.2 中,它按预期工作,isObjectfalse

struct Foo<T>
{
var value: Any?
var isObject: Bool = false

init (val: T?)
{
if val != nil
{
// following line shows warnings in Swift 3
// conditional cast from 'T?' to 'AnyObject' always succeeds
// 'is' cast is always true
isObject = val is AnyObject

self.value = val
}
}
}

struct Bar
{
var bar = 0
}

let b = Foo<Bar>(val: Bar())

print(b.isObject) // -> true

如何让它在 Swift 3 中正常工作?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com