2016-04-30 20 views
-1

除了函數之外,是否每種類型都快速符合Any?據我所知,AnyObject代表所有班級類型,Any處於比此更高的級別,代表所有其他類型。但是我遇到的情況最近就在那裏我有一個看起來像一個功能:具有String參數調用它,當Swift型符合任何

func myFunFunction(someArgument: Any) { 
    ... 
} 

和:myFunFunction("This is a string")我得到一個錯誤,該類型String不能轉換爲類型Any

編輯:

上面的例子就是這樣一個例子。我想簡化代碼只是爲了得到答案,但這裏是我的實際代碼:

我有一個類final class CollectionViewBinder: NSObject, UICollectionViewDataSource, UICollectionViewDelegate { } 充當ReactiveCocoa的集合視圖綁定助手。

init方法:

init(collectionView: UICollectionView, dataSignal: SignalProducer<[[Any]], NoError>, supplementarySignal: SignalProducer<[[Any]], NoError>?) { ... } 

如果dataSignal類型是SignalProducer<[[String]], NoError>,當我得到的錯誤說類型SignalProducer<[[String]], NoError>不能轉換爲類型SignalProducer<[[Any]], NoError>這將導致我認爲我的錯誤是什麼,是可能與ReactiveCocoa有關?

+0

「在迅速從功能是否每個類型,除了,符合任何」斯威夫特每個類型號,_including_功能,符合所有。 – matt

+0

在操場上,我可以調用'myFunFunction(「字符串」)'沒有任何錯誤。如果您顯示實際的代碼,它可能會有所幫助。 Swift錯誤信息可能會引起誤解,而實際的錯誤往往在不同的線路上或由不同的原因引起。 –

+0

我更新了更多的代碼。 – barndog

回答

2

你是對的約Any,蘋果文件說:

任何可以在所有代表任何類型的實例,包括函數類型。

您給我的例子對我沒有任何問題。通常在這種情況下,錯誤在其他地方,但編譯器會給出一個誤導消息。

相關問題