小编whi*_*ler的帖子

NSManagedObject 更改不会触发 objectWillChange

我有一个核心数据模型,其中一个实体生成到 class 中Task。我正在尝试objectWillChangeNSManagedObject发送(自动,无需手动工作)中获取合并发布者,但它不会。任务实体有一个name属性。

let task = Task(context: container.viewContext)

let taskSubscription = task.objectWillChange.sink(receiveValue: { _ in
    print("Task changed")
})

task.name = "Foo"              // WILL NOT trigger
Run Code Online (Sandbox Code Playgroud)

如果我手动调用发送,订阅将起作用:

task.objectWillChange.send()   // Will trigger
Run Code Online (Sandbox Code Playgroud)

如果我用一个 simple 替换ObservableObject它,它将按预期工作:

class DummyTask: ObservableObject {
    @Published var name: String?
}
Run Code Online (Sandbox Code Playgroud)
let dummy = DummyTask()
let dummySubscription = dummy.objectWillChange.sink(receiveValue: { _ in
    print("Dummy changed")
})

dummy.name = "Foo"              // Will trigger
dummy.objectWillChange.send()   // Will trigger
Run Code Online (Sandbox Code Playgroud)

NSManagedObject 被窃听了吗?我应该如何观察通用实体对象的变化?我应该如何让 SwiftUI 看到它们? …

core-data swift swiftui combine

9
推荐指数
2
解决办法
2557
查看次数

是否可以使用 MusicSequence 将 MusicPlayer 连接到 AVAudioUnitSampler?

我正在使用 Audiokit 来满足我的 iOS 应用程序的音频需求,我需要使用音序器以编程方式控制一系列音符,并且我想用它来驱动采样器。Audiokit 似乎被设计为在内部使用 MIDI,但我想避免这种情况并直接从音序器转到采样器,因为使用 MIDI 似乎使所有内部连接都出现在其他应用程序的虚拟 MIDI 列表中。

我的问题是:是否可以使用MusicPlayer,MusicSequenceMusicTrack(来自AudioToolbox)将音序器连接到AVAudioUnitSampler(来自AVFoundation)?

另一种选择显然是使用 anAudioComponentDescription和构建一个来构建采样器AUGraph,但我想尽可能使用 Audiokit 助手。

编辑:关键步骤似乎是使用MusicTrackSetDestNode它需要一个AUNode. AVAudioUnitSamplerAVAudioNode具有auAudioUnit类型 属性的AUAudioUnit。基本的 API 就像AUGraphNodeInfo为您提供来自音频节点的音频单元。如何从音频单元获取音频节点?

core-audio ios swift audiokit

5
推荐指数
1
解决办法
391
查看次数

标签 统计

swift ×2

audiokit ×1

combine ×1

core-audio ×1

core-data ×1

ios ×1

swiftui ×1