我又回来了另一个问题。在我尝试学习swift时,我决定编写一些小的,随机的游乐场脚本,我可以回去并在以后作为参考使用,这是一个很好的起点。
我现在正在做的是一个小脚本,它使用两种不同的方式来读取同一个文件,在完成后打印文件内容。
使用我在堆栈上找到的相当多的提示(以及官方文档)我设法拼凑了一个应该完成上述目标的脚本。 (请原谅重评论,因为这些是参考资料)
//Import for use of NSString
import Foundation
//ATTEMPT #1
//Set file locations
let location = NSString(string:"/Users/me/Desktop/file.txt").stringByExpandingTildeInPath
//Make fileContent = data within file
let fileContent = try? NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding)
//print content of file
print("The file contains:\n", fileContent, "\n")
//ATTEMPT #2
//set filename
let filename = "file.txt"
//set document path
let documentsPath = "/Users/me/Desktop"
let destinationPath = documentsPath + "/" + filename
//read file
let data: NSData? = NSData(contentsOfFile: destinationPath)
print("The file contains:\n", data, "\n")
我已经在给定位置创建了文件,但无论我如何尝试使用任何一些代码,我都会收到'nil'作为我的文件内容(这只是'hello world')
该文件是一个简单的文本文件,UTF8由textwrangler制作。文件中的字符串之前或之后没有可用空间。任何想法都将不胜感激。
更改:
//Set file locations
let location = NSString(string:"/Users/l8nit3/Documents/file.txt").stringByExpandingTildeInPath
//Make fileContent = data within file
let fileContent = try? NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding)
为:
//Set file locations
let location = NSString(string:"/Users/l8nit3/Documents/file.txt")
//Make fileContent = data within file
let fileContent = try? NSString(contentsOfFile: location as String, encoding: NSUTF8StringEncoding)
根据建议
删除.stringByExpandingTildeInPath的使用答案 0 :(得分:1)
其实不再了。游乐场它是沙箱,因此您需要使用实际项目进行测试。您可以将文件放在playground文档文件夹路径中,以便使用Finder的“转到文件夹”(Shift-Command-G)进行测试以找到它。