Следующий код:
protocol SomeProtocol {}
class SomeClass: SomeProtocol {}
private func doSomethingWith(inout someVar: SomeProtocol) {}
private var someGlobalVar = SomeClass() // inferring SomeClass's type
doSomethingWith(&someGlobalVar)
выдает следующую ошибку:
Не удается вызвать «doSomethingWith» со списком аргументов типа «(inout SomeClass)»
Изменение предпоследней строки на private var someGlobalVar: SomeProtocol = SomeClass() устраняет ошибку.
Сабж.
inoutне так популярны при разработке вашей архитектуры;) - person mesmerizingr   schedule 15.05.2016