【发布时间】:2016-10-28 22:37:31
【问题描述】:
我正在处理一些琐碎的事情:
func isAnyObject<T>(someObject: T) {
if let object = someObject as? AnyObject {
// do something
} else {
// do something else
}
}
这给了我编译器警告:
- 从“T”到“AnyObject”的条件转换总是成功
- 在检查中使用的“AnyObject”类型的非可选表达式 选项
我明白为什么演员表总是成功,但我不知道该怎么做才能解决它。我尝试将第 2 行更改为
if let object = foo as AnyObject?
但是当我通过函数传递一个结构时,它仍然进入'if'块。我在这里错过了什么?
【问题讨论】:
-
你为什么要选角?
-
P.s.,不要在函数签名中写
-> Void。 -
糟糕。我不知道我是否完全理解演员表的目的,但是,出于我自己的意图,我只是看看传递一个结构对象并让它击中“else”块需要什么跨度>