Swift 2.0代码适用于Xcode,但不适用于Playground

Swift 2.0代码适用于Xcode,但不适用于Playground,第1张

概述我正在学习 Swift并且一直在试图弄清楚我无法加载文件.事实证明,代码在Xcode中工作,但在 *** 场上不起作用.这是什么原因? 这是代码: func testFileLoad(){ let myFilePath: String = "/Users/clay/Desktop/test.txt" let t: Bool = NSFileManager.defaultManager(). 我正在学习 Swift并且一直在试图弄清楚我无法加载文件.事实证明,代码在Xcode中工作,但在 *** 场上不起作用.这是什么原因?

这是代码:

func testfileLoad(){    let myfilePath: String = "/Users/clay/Desktop/test.txt"    let t: Bool = NSfileManager.defaultManager().fileExistsAtPath(myfilePath)    print(t)    let s: String = try! String(contentsOffile: myfilePath,enCoding: NSUTF8StringEnCoding)    print(s)    do {        let p: String = try String(contentsOffile: myfilePath,enCoding: NSUTF8StringEnCoding)        print(p)    } catch {        print("nope")    }}

在Xcode的测试模块中运行,它可以正常工作并打印我希望的控制台.

Test Suite 'Selected tests' started at 2015-08-05 14:24:15.977 Test Suite 'swiftgraphTests' started at 2015-08-05 14:24:15.978 Test Case '-[swiftgraphTests.swiftgraphTests testfileLoad]' started. true this is a test this is a test Test Case '-[swiftgraphTests.swiftgraphTests testfileLoad]' passed (0.001 seconds). Test Suite 'swiftgraphTests' passed at 2015-08-05 14:24:15.979.          Executed 1 test,with 0 failures (0 unexpected) in 0.001 (0.001) seconds Test Suite 'Selected tests' passed at 2015-08-05 14:24:15.979.       Executed 1 test,with 0 failures (0 unexpected) in 0.001 (0.002) seconds

在 *** 场上,我明白了:

我在这做错了什么?我不正确地使用 *** 场吗?

如果你去菜单

“VIEw” -> “DeBUG Area” -> “Show DeBUG Area”

您将看到完整错误:“您无权从Playground *访问文件系统.”

解决方法是使用Project Navigator将文件包含在Playground中.

转到菜单

“VIEw” -> “Navigators” -> “Show Project Navigator”

然后将文件拖放到“Resources”文件夹中.

然后使用NSBundle获取路径.

func testfileLoad() {    // get the file path for the file from the Playground's Resources folder    guard let path = NSBundle.mainBundle().pathForResource("test",ofType: "txt") else {            print("Oops,the file is not in the Playground")            return    }    // keePing the examples from your question    let s: String = try! String(contentsOffile: path,enCoding: NSUTF8StringEnCoding)    print(s)    do {        let p: String = try String(contentsOffile: path,enCoding: NSUTF8StringEnCoding)        print(p)    } catch {        print("nope")    }}testfileLoad()

*实际上,您只能访问包含Playground共享数据的/ var /文件夹,而Playground只提供快捷方式. Playground导航器中的此文件夹实际上代表/ var /文件夹,并且对于每个Playground都是唯一的.您可以使用NSBundle查看其地址:

NSBundle.mainBundle().resourcePath
总结

以上是内存溢出为你收集整理的Swift 2.0代码适用于Xcode,但不适用于Playground全部内容,希望文章能够帮你解决Swift 2.0代码适用于Xcode,但不适用于Playground所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1041682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存