swift - 我如何在快速的 Playground 中读取文件

标签 swift

我正在尝试使用 Swift playground 读取文本文件

let dirs : String[]? =    NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) as? String[]

if (dirs != nil) {
    let directories:String[] = dirs!;
    let dir = directories[0]; //documents directory
    let path = dir.stringByAppendingPathComponent(file);

    //read
    let content = String.stringWithContentsOfFile(path, encoding: NSUTF8StringEncoding, error: nil)
}

然而,这没有错误地失败了。似乎第一行阻止 Playground 输出下面的任何内容

最佳答案

您还可以将文件放入 playground 的资源中。为此:使用 CMD + 1 显示 Project Navigator。将文件拖放到资源文件夹中。然后读取文件:

在 Xcode 6.4 和 Swift 1.2 上:

var error: NSError?
let fileURL = NSBundle.mainBundle().URLForResource("Input", withExtension: "txt")
let content = String(contentsOfURL: fileURL!, encoding: NSUTF8StringEncoding, error: &error)

在 Xcode 7 和 Swift 2 上:

let fileURL = NSBundle.mainBundle().URLForResource("Input", withExtension: "txt")
let content = try String(contentsOfURL: fileURL!, encoding: NSUTF8StringEncoding)

在 Xcode 8 和 Swift 3 上:

let fileURL = Bundle.main.url(forResource: "Input", withExtension: "txt")
let content = try String(contentsOf: fileURL!, encoding: String.Encoding.utf8)

如果文件包含二进制数据,您可以使用 NSData(contentsOfURL: fileURL!)Data(contentsOf: fileURL!)(对于 Swift 3)。

关于swift - 我如何在快速的 Playground 中读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24245916/

相关文章:

ios - 如何根据时间在 MKMapView 上显示/隐藏夜间模式覆盖

arrays - Firebase/Swift 在删除时更新 TableView 值?

swift - 创建一个观察者来检查 MediaPlayer playbackState 是否暂停

ios - 无法使用 ADLilyTableView

swift - 如何以编程方式更改搜索栏宽度? ( swift )

ios - 将小的 UIImage 放在大的 UIButton 中

ios - 使用 DynamoDB -> 未找到资源

swift - 显示放大模型 Swift SceneKit

ios - 如何使用选项卡栏管理容器 View 中的 Controller

ios - Pinterest IOS SDK getBoardPins 响应代码=-1011 "Request failed: bad request (400)"