У меня есть функция, которая принимает несколько другие функции в качестве аргументов:Что такое тип возврата «()»?
class Iterator {
func iterateItems(itemArray: [Items], removeItem: (Items) -> Void, addItem: (inout Items) -> Void, calculateEfficiency:() -> Void) -> [Items] {
// function body
}
}
И я называю это в своем классе подкласс так:
class WPCalculator: Iterator {
func removeWeaponItem(item: WeaponItems) { ... }
func addWeaponItem(item: inout WeaponItems) { ... }
func calcWeaponDamage() { ... }
func iterateWPItems() {
return iterateItems(itemArray: WeaponItems.weaponItems, removeItem: removeWeaponItem as! (Items) -> Void, addItem: addWeaponItem as! (inout Items) -> Void, calculateEfficiency: calcWeaponDemage)
}
}
Также WeaponItems
класс является подклассом Items
класс:
class WeaponItems: Items { ... }
Xcode дает мне предупреждение о addWeaponItem
:
Cast от
(inout WeaponItems) ->()
к несвязанному типу(inout Items) -> Void
всегда терпит неудачу
Я не могу понять типа ->()
возврата, явно его не то, что делает моя функция, другие функции, передаваемые в качестве аргументов без INOUT параметры просто прекрасно работали
'()' так же, как 'Void'. Должно быть в книге Swift, найдите «пустой кортеж». –
Связано: [Возврат в функции без возвращаемого значения в Swift] (http://stackoverflow.com/questions/38946275/) и [Есть ли возможные явные использования экземпляров (значений) пустых кортежей(), т. Е. Экземпляров типа «Пустота»?] (http://stackoverflow.com/questions/34561452/). – dfri