【发布时间】:2014-07-05 02:02:02
【问题描述】:
我想在 Swift 中打开一个文本文件,我设法将完整路径作为参数传递:
let dados = String.stringWithContentsOfFile("/Users/aczuquim/Google Drive/Swift/Verdadeiro ou Falso/Verdadeiro ou Falso/Dados.txt", encoding: NSUTF8StringEncoding, error: nil)
既然我把文件加到项目里了,有什么办法可以使用相对路径吗?
当我使用相对路径时,会返回一个nil。
更新
在操场上,下面的行正常工作:
let dados = String.stringWithContentsOfFile("/Users/aczuquim/Google Drive/Swift/Verdadeiro ou Falso/Verdadeiro ou Falso/dados.txt", encoding: NSUTF8StringEncoding, error: nil)
但不是以下那些(path 是 nil):
let bundle = NSBundle.mainBundle()
let path = bundle.pathForResource("dados", ofType: "txt")
【问题讨论】:
-
我假设它在构建时被复制到 Resources 目录中,即它已被添加到项目设置中“构建阶段”下的“复制捆绑资源”中??
-
您想访问资源目录中的文件而不是项目中的文件(两者不同)?
-
项目和资源目录是一样的。但是如果我不使用完整路径,我就无法读取文件。而且我不想硬编码完整路径目录(想使用相对路径)
-
项目和资源目录不一样。您给出的路径是您的项目目录。要转到 Resources 目录,请右键单击相应的目标并单击“在 Finder 中显示”。右键单击该应用程序,然后单击“显示包内容”。在里面稍微搜索一下,你应该会找到“资源”目录
-
该文件在构建时从您的项目复制到此资源目录,以便它始终与您的应用程序保持一致。