Swift 給出 var 不在范圍內的錯誤。“在范圍內找不到 'midiManager'”我不確定如何解決問題
選單.swift
struct MainMenuBar: MenuBar {
public var body: StandardMenuBar {
StandardMenu(title: "Midi Devices") {
midiManager.endpoints.outputs.forEach { device in
TextMenuItem(title: device.name) { _ in
print(device.uniqueID)
}
}
}
}
}
midi.swift
@objc(ReactNativeMidiModule)
class ReactNativeMidiModule: RCTEventEmitter, NSApplicationDelegate {
// Create midi manager
public let midiManager = MIDI.IO.Manager(
clientName: "MIDIEventLogger",
model: "ELMC Midi Monitor",
manufacturer: "ELMC")
// other code
}

uj5u.com熱心網友回復:
midiManager不存在于您的MainMenueBar. 所以midiManager找不到。您必須需要midiManager在MainMenueBar結構中添加。像這樣 -
struct MainMenuBar: MenuBar
{
public let midiManager = MIDI.IO.Manager(clientName: "MIDIEventLogger", model: "ELMC Midi Monitor", manufacturer: "ELMC")
public var body: StandardMenuBar
{
StandardMenu(title: "Midi Devices")
{
midiManager.endpoints.outputs.forEach { device in
TextMenuItem(title: device.name) { _ in
print(device.uniqueID)
}
}
}
}
}
或 通過創建一個通用類作為-
class MidiManager {
static let midiManager = MIDI.IO.Manager(clientName: "MIDIEventLogger", model: "ELMC Midi Monitor", manufacturer: "ELMC")
}
然后在兩者中MainMenuBar使用ReactNativeMidiModule它
struct MainMenuBar: MenuBar {
public let midiManager = MidiManager.midiManager
public var body: StandardMenuBar {
StandardMenu(title: "Midi Devices") {
midiManager.endpoints.outputs.forEach { device in
TextMenuItem(title: device.name) { _ in
print(device.uniqueID)
}
}
}
}
}
@objc(ReactNativeMidiModule)
class ReactNativeMidiModule: RCTEventEmitter, NSApplicationDelegate {
// Create midi manager
public let midiManager = MidiManager.midiManager
// other code
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/486944.html
標籤:迅速
