【问题标题】:How to get the object type in Swift3 [duplicate]如何在 Swift3 中获取对象类型 [重复]
【发布时间】:2017-09-05 19:54:07
【问题描述】:

代码如下,在OC中使用[touch.view class]获取对象类型,在Swift 3中如何获取。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
    return NO;
} else {
    return YES;
}
}

【问题讨论】:

标签: ios swift


【解决方案1】:

在 Swift 3 中,要确定对象的类型,您可以使用:

type(of: yourObject)

例子:

let myString = "I'm a String!"

let myType = type(of: myString)

print(myType) // prints "String\n"

【讨论】:

    【解决方案2】:

    扩展@jglasse 的答案,您可以通过使用获取对象的类型

    let theType = type(of: someObject)
    

    然后你可以从中得到一个字符串

    let typeString = String(describing: type)
    

    或者在一行中:

    let typeString = String(describing: type(of: someObject))
    

    【讨论】:

    • 在 swift 4 中我收到警告:变量在其自己的初始值内使用请帮助
    • 只需为变量使用不同于“类型”的名称。 Swift 4 可能已经改变了名称解析机制。
    • 如果你称它为 objectType 或它应该可以工作的东西。
    • 谢谢你的工作:D
    猜你喜欢
    • 2012-08-29
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    相关资源
    最近更新 更多