2017-04-10 20 views
1

代碼如下,在OC中使用[touch.view class]獲取對象類型,在Swift 3中如何獲取它。如何獲取Swift3中的對象類型

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

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

型(作者:yourObject)使用此 –

+0

在這種情況下,你會使用'is'或'作爲? '在這些答案http://stackoverflow.com/a/26384597/1187415,http://stackoverflow.com/a/30304590/1187415重複。 –

+0

首先,你不應該使用字符串來比較這樣的類。在這裏看到我的答案:http://stackoverflow.com/a/40388434/3141234 – Alexander

回答

3

擴大對@ jglasse的答案,你可以得到的類型使用對象

let type = type(of: someObject) 

然後,您可以得到由

let typeString = String(describing: type) 

或者在一行從一個字符串:

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

在斯威夫特3,確定你的對象的類型,你可以使用:

type(of: yourObject) 

例子:

let myString = "I'm a String!" 

let myType = type(of: myString) 

print(myType) // prints "String\n" 
相關問題