Я хочу выполнить итерацию enum
, а затем использовать $ 0 в операторе switch/case
на один уровень в замыкании, которое вызывается в операции выборки внутри цикла итерации enum
, следующим образом:
enum GenericType: CaseIterable {
case purchase
case sale
// etc....
}
Тогда используемый код выглядит следующим образом:
GenericType.allCases.forEach {
// let type = $0
Manager.fetchItems(ofType: $0, onSuccess: { (data) in
switch $0 {
case purchase:
// Do something
case sale:
// Do something
}
}
Xcode 10 предполагает, что $0
относится к data
(параметр в замыкании) и выдает это сообщение об ошибке:
Anonymous closure arguments cannot be used inside a closure that has explicit arguments; did you mean 'data'?
Я могу заставить его работать до извлечения:
let type = $0
И затем использовать type
в операторе switch/case
.
Есть ли способполучить доступ к сокращенному аргументу $0
из контекста более высокого уровня внутри замыкания?Является ли обходной путь возможным решением?
Thx