我有一个由AnyObject
组成的数组。我想遍历它,并找到所有属于数组实例的元素。
如何在Swift中检查对象是否为给定类型?
发布于 2014-06-07 07:06:35
如果要对照特定类型进行检查,可以执行以下操作:
if let stringArray = obj as? [String] {
// obj is a string array. Do something with stringArray
}
else {
// obj is not a string array
}
你可以用"as!“如果obj
不是[String]
类型,则会抛出运行时错误
let stringArray = obj as! [String]
您还可以一次选中一个元素:
let items : [Any] = ["Hello", "World"]
for obj in items {
if let str = obj as? String {
// obj is a String. Do something with str
}
else {
// obj is not a String
}
}
发布于 2016-06-16 17:16:14
在Swift 2.2 - 5中,您现在可以执行以下操作:
if object is String
{
}
然后过滤你的数组:
let filteredArray = originalArray.filter({ $0 is Array })
如果您有多个类型需要检查:
switch object
{
case is String:
...
case is OtherClass:
...
default:
...
}
发布于 2015-05-31 06:05:17
我有两种方法:
if let thisShape = aShape as? Square
或者:
aShape.isKindOfClass(Square)
下面是一个详细的例子:
class Shape { }
class Square: Shape { }
class Circle: Shape { }
var aShape = Shape()
aShape = Square()
if let thisShape = aShape as? Square {
println("Its a square")
} else {
println("Its not a square")
}
if aShape.isKindOfClass(Square) {
println("Its a square")
} else {
println("Its not a square")
}
立即编辑:3:
let myShape = Shape()
if myShape is Shape {
print("yes it is")
}
https://stackoverflow.com/questions/24091882
复制相似问题