【发布时间】:2016-04-30 17:07:04
【问题描述】:
除了函数之外,swift 中的每个类型都符合Any 吗?我知道AnyObject 代表所有类类型,Any 比这更高,代表所有其他类型。然而,我最近遇到了一个情况,我有一个看起来像这样的函数:
func myFunFunction(someArgument: Any) {
...
}
当使用 String 参数调用它时:myFunFunction("This is a string") 我收到错误消息,指出类型 String 无法转换为类型 Any。
编辑:
上面的例子就是这样,一个例子。我想简化代码只是为了得到答案,但这是我的实际代码:
我有一堂课final class CollectionViewBinder: NSObject, UICollectionViewDataSource, UICollectionViewDelegate { }
作为 ReactiveCocoa 的集合视图绑定助手。
初始化方法:
init(collectionView: UICollectionView, dataSignal: SignalProducer<[[Any]], NoError>, supplementarySignal: SignalProducer<[[Any]], NoError>?) { ... }
如果dataSignal 的类型是SignalProducer<[[String]], NoError>,那是当我收到错误说类型SignalProducer<[[String]], NoError> 无法转换为类型SignalProducer<[[Any]], NoError> 这会让我认为我的错误与ReactiveCocoa 有关可能吗?
【问题讨论】:
-
"除了函数之外,swift 中的所有类型是否都符合 Any" 否。Swift 中的每种类型,包括函数,都符合 Any。
-
在操场上,我可以毫无错误地调用
myFunFunction("a string")。如果您显示实际代码可能会有所帮助。 Swift 错误消息可能会产生误导,而实际错误通常位于不同的行或由不同的原因引起。 -
我更新了更多代码。
-
所以您的实际问题似乎是不能将 String 数组作为 Any 参数数组传递。那将是 stackoverflow.com/questions/36954358/… 的副本。
标签: swift