我正在努力编写我的第一个Swift3应用程序 - 一个屏幕保护程序,因为我无法引用任何本地文件。经过几个小时的调试和设置Playground后,我发现Bundle.main.bundlePath没有指向我的应用程序,而是" /Applications/Xcode.app"。这解释了为什么在下面的代码中 - 从未找到video.mp4,但我也没有从选择Bundle by identifier中找回。
有关如何解决此问题的任何建议?我的一个本地文件(video.mp4)是可读的,被复制为Bundle Resource并且没有虚假的xattrs。我卡住了!任何帮助表示赞赏。
运行10.12.3 / Xcode 8.2.1,Swift 3.0.2
下面的游乐场代码:
import Cocoa
import PlaygroundSupport
import AVKit
import AVFoundation
var frameRect = NSRect(x: 0, y: 0, width: 600, height: 600)
var mainView = NSView(frame: frameRect)
let bundle = Bundle(identifier: "com.modprods.koorigras-test.Playground")
debugPrint(bundle)
debugPrint(Bundle.main.bundlePath)
guard let path = Bundle.main.path(forResource: "video",ofType:"mp4") else {
debugPrint("not found")
exit(1)
}
答案 0 :(得分:1)
根据Eric的评论,这是Playground的正确行为。
对于其他n00bs,在工作区内创建一个新的Playground会导致灰色的Sources和Resources文件夹,如果你试图在finder中显示没有任何反应(因为它们不存在)。从新的Playground中访问本地文件
似乎无法从Playground中访问其他捆绑包。