Соответствует ли каждый тип быстродействующим, кроме функций, Any
? Я понимаю, что AnyObject
представляет собой все типы классов, а Any
находится на более высоком уровне, чем другие типы. Однако я наткнулся на ситуацию, в последнее время, когда я была функция, которая выглядела так:Свифт соответствует любому
func myFunFunction(someArgument: Any) {
...
}
И при вызове его с String
аргументом: myFunFunction("This is a string")
Я получаю ошибку о том, что тип String
не может быть преобразован в типе Any
.
Edit:
В приведенном выше примере только что, в качестве примера. Я хотел бы упростить код, чтобы получить ответ, но вот мой фактический код:
У меня есть класс 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, _including_ функция, соответствует любому. – matt
На игровой площадке я могу вызвать 'myFunFunction (« строка »)' без каких-либо ошибок. Это может помочь, если вы покажете фактический код. Быстрые сообщения об ошибках могут вводить в заблуждение, а фактическая ошибка часто бывает в другой строке или вызвана другой причиной. –
Я обновил больше кода. – barndog