NSData(contentsOfURL: url) 总是返回 nil

NSData(contentsOfURL: url) always returning nil

我在新的 playground 中有这段代码

import Foundation

let blogsURL: NSURL = NSURL(fileURLWithPath: "/Users/Francis/Documents/Xcode_projects/KM registratie/blogs.json")
let data = NSData(contentsOfURL: blogsURL)

在第二行,playground 告诉我它(正确地)初始化了 URL 引用 file:///Users/Francis/Documents/Xcode_projects/KM%20registratie/blogs.json 在第三行,游乐场告诉我数据是 nil

我已经用谷歌搜索了,但没有问题似乎是完全相同的问题。我找到了这个“NSData contentsOfURL constructor returns nil”,但是重新启动 Xcode 或重新启动我的整个计算机都无法解决问题。

游乐场是沙盒化的,似乎没有一种简单的方法可以到达他们 "box" 之外。 XML parsing in swift这个问题的标题有点误导,上面的答案确实回答了这个问题

这里回答:

XML parsing in swift

问题是您的 URL 没有指向您认为的位置。您正在尝试在您的沙盒中的子目录中打开 URL,但它不存在。

您需要打开 playground 的包内容(右键单击 playground 和 select "Show Package Contents",添加一个名为 "Resources" 的文件夹,然后直接复制您的文件那里。

然后您可以从主包中获取文件:

let url: NSURL! = NSBundle.mainBundle().URLForResource("blogs", withExtension: "json")