D.A*_*A.H 15 xcode foundation swift xcode6 swift-playground
Swift Playground中无法读取文件.
如何使文件可读?
相同的代码在Xcode终端应用程序上运行良好,但在Swift Playground上失败.
下面的演示代码.
import Foundation
println("Hello, World!")
var fname:String = "/Users/holyfield/Desktop/com.apple.IconComposer.plist"
var fm:NSFileManager = NSFileManager.defaultManager()
if(fm.fileExistsAtPath(fname)){
    println("File Exists")
    if(fm.isReadableFileAtPath(fname)){
        println("File is readable")
        var fd:NSData? = NSData(contentsOfFile: fname)
        println(fd?.length)
        let pl = NSDictionary(contentsOfFile: fname)
        println(pl?.count)
        println(pl?.allKeys)
    }else{
        println("File is not readable")
    }
}
else{
    println("File does not exists")
}
示例图片:
 

D.A*_*A.H 15
我要首先感谢Nate Cook的快速反应和坚定的答案.
仅仅是因为我从另一篇文章中分享了他的答案,这个标题具有误导性.
请参阅Nate的答案:https://stackoverflow.com/a/26723557/2360439
操场是沙盒,因此您无法从用户文件夹中的任何位置抓取文件.以下是如何将该文件添加到您的游乐场以使其可访问:
- 在Finder中找到".playground"文件右键单击并选择"显示包内容"
- 你应该看到"timeline.xctimeline","contents.xcplayground"和"section-1.swift"
- 如果它还不存在,请创建一个名为" Resources " 的新文件夹.
- 将文件复制到Resources文件夹中
似乎无法在Playground沙箱之外使用Swift Playground访问文件.如果您知道如何访问沙箱之外的文件,欢迎您分享您的解决方案!


有几种方法可以将文件加载到Swift Playground中.我将重点介绍Image Literal,File Menu和Context Menu技术.
这是最简单和最酷的.您只需将文件从计算机上的任何位置拖到代码中,然后通过let或var语句进行分配.GIF在这里.

选择 File -> Add Files to "MyProjectName"
您可以使用右键单击菜单在Xcode(7.3.1)项目导航器中显示当前的游乐场.在显示当前的游乐场后,您将看到名为"资源"的目录.只需将您想要访问的文件拖到该文件夹中,即可看到魔法发生(假设您已编写文件访问代码).
以下是显示图像的示例:
let url: NSURL! = NSBundle.mainBundle().URLForResource("IMG_4099", withExtension: "JPG")
let imagePath = url.path
let image = UIImage(contentsOfFile: imagePath!)
let imageView = UIImageView.init(image: image)
我制作了一个动画GIF,演示了这一点.这是一个屏幕抓取:

如果要添加除资源之外的辅助代码,请使用Sources文件夹.
Xcode的Playground界面的控制台区域将向您显示UIImage实例是nil在沙箱外部加载图像文件时的实例.如果您输入了一个您知道的路径,但图像未显示,请确保该UIImage实例未打印为nil.
| 归档时间: | 
 | 
| 查看次数: | 8501 次 | 
| 最近记录: |