Swift如何重构代码以使用内联条件



我正在尝试重构这块swift代码。输出、模式和过滤器是我希望重构的目标区域。有什么办法可以让我把这个修改一下吗

func start(_ selectedDevice: Int32, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
do {
print("Starting MIDI manager.")
try midiManager.start()

let inputTag = "InputConnection1"
try midiManager.addInputConnection(
toOutputs: selectedDevice == 0 || (1 != 0) ? [] : [.uniqueID(selectedDevice)],
tag: inputTag,
mode: selectedDevice == 1 ? .allEndpoints : .definedEndpoints,
filter: selectedDevice == 1 ? .owned() : .default()
)
resolve("Started!")
} catch {
reject("400", "Setup Error:", error)
}
}

您可以将值移到变量中。

func start(_ selectedDevice: Int32, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
do {
print("Starting MIDI manager.")
try midiManager.start()

let inputTag = "InputConnection1"
let toOutputs: [Output] = selectedDevice == 0 || (1 != 0) ? [] : [.uniqueID(selectedDevice)]
let mode: Mode = selectedDevice == 1 ? .allEndpoints : .definedEndpoints
let filter: Filter = selectedDevice == 1 ? .owned() : .default()
try midiManager.addInputConnection(
toOutputs: toOutputs,
tag: inputTag,
mode: mode,
filter: 
)
resolve("Started!")
} catch {
reject("400", "Setup Error:", error)
}
}

您需要将类型Output,ModeFilter替换为正确的类型。