MusicSequenceFileLoad 在 Playgrounds 中有效,但在 Project 中无效

Posted

技术标签:

【中文标题】MusicSequenceFileLoad 在 Playgrounds 中有效,但在 Project 中无效【英文标题】:MusicSequenceFileLoad Works in Playgrounds but not in Project 【发布时间】:2018-02-11 08:46:38 【问题描述】:

我做错了什么?

我正在尝试打开一个 MIDI 文件并读取它的内容。到目前为止,我可以在操场上打开文件,但我的项目中出现“Open::fopen failed”

override func viewDidLoad() 
    super.viewDidLoad()

    let path = NSURL.fileURL(withPath: "/users/me/file.mid")
    var midfile: MusicSequence?
    NewMusicSequence(&midfile)

    MusicSequenceFileLoad(midfile!, path as CFURL, .midiType , .smf_ChannelsToTracks)

我确实有导入 AudioToolbox 和 CoreMIDI

编辑:一些进展 我可以使用 CFBundleCopyResourceURL 从捆绑包中打开 MIDI 文件,但我希望能够从 finder 中的任何位置打开文件

fileManager 也失败了,它在项目中使用时返回 nil 并在游乐场中工作。

【问题讨论】:

【参考方案1】:

想通了。

代码失败,因为应用程序在沙盒中运行并且无法访问 NSURL

【讨论】:

以上是关于MusicSequenceFileLoad 在 Playgrounds 中有效,但在 Project 中无效的主要内容,如果未能解决你的问题,请参考以下文章

如何实现在<p>...</p> 标签前后,批量插入内容

为啥“#define WC(p) L#p”在 GCC 和 Clang 中不起作用?

p:Column 复合元素不会在 p:DataExporter 中导出

如何或有可能在 Coq 中证明或证伪 `forall (P Q : Prop), (P -> Q) -> (Q -> P) -> P = Q.`?

为啥在操作系统中引入信号量及P、V操作?

浅谈p值(p-value是啥)