似乎我的文本文件没有永久存储在文档目录中
Seems like my Text file isn't storing persistently in Documents Directory
注意:可能已解决:缺少“.path!”到 documentsUrl.path!.stringByAppendingPathComponent(path)
我正在将文本文件保存到应用程序文档目录。使用
var path = ""
let date = NSDate()
let file = "\(date).txt"
let joined = "\n".join(ActionArray)
if let dirs : [String] = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String] {
let dir = dirs[0]
path = dir.stringByAppendingPathComponent(file);
println(path)
joined.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding, error: nil);
}
println path
/Users/dustin/Library/Developer/CoreSimulator/Devices/5EA056FC-114D-4C98-9B35-29B46760BE3A/data/Containers/Data/Application/2AB9FD4A-25AB-4385-9CFB-A66AEFA8C1A3/Documents/2015-05-16 08:24:08 +0000.txt
然后将path
和一些其他数据存储到一个Entity
中,用于稍后回调文本文件。
当我对实体执行 fetchRequest 并打印出数组时,我得到
(
" (entity: Entity; id: 0xd000000000040000 ; data: {\n date = \"2015-05-16 08:18:20 +0000\";\n path = \"/Users/dustin/Library/Developer/CoreSimulator/Devices/5EA056FC-114D-4C98-9B35-29B46760BE3A/data/Containers/Data/Application/4A9C17AB-57C1-47CB-B9B1-E0E5CA494B4E/Documents/2015-05-16 08:24:08\";\n})"
)
path
现在缺少“+0000”。当我从 Entity.path
调用路径时,找到了我的文本文件...但是当我完全关闭应用程序 (home-swipe-^) 时,文本文件搜索...
let fileContent = String(contentsOfFile: path, encoding: NSUTF8StringEncoding, error: nil)!
var fileContentArr = split(fileContent) {[=11=] == "\n"}
我明白了
fatal error: unexpectedly found nil while unwrapping an Optional value
无论应用程序是否重置,编写一个持久性文本文件供以后使用我做错了什么?
编辑:我听取了注意应用程序会话之间目录路径变化的建议,因此我将文件名存储到 Entity
并在读取时获取文档路径。我仍然遇到错误。
我正在调试,我的 println 如下
let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as! NSURL
// now lets get the directory contents (including folders)
if let directoryContents = NSFileManager.defaultManager().contentsOfDirectoryAtPath(documentsUrl.path!, error: nil) {
println(directoryContents)
println(documentsUrl.path!)
}
[2015-05-17 04:25:48 +0000.txt, 2015-05-17 04:31:07 +0000.txt, iPro_Poker_HH_swift.sqlite, iPro_Poker_HH_swift.sqlite-shm, iPro_Poker_HH_swift.sqlite-wal]
/Users/dustindobrilovic/Library/Developer/CoreSimulator/Devices/5EA056FC-114D-4C98-9B35-29B46760BE3A/data/Containers/Data/Application/7CD25462-947C-40AA-97DB-4A845FED1451/Documents
我的实体获取数组 println()
(
" (entity: Hand; id: 0xd000000000080000 ; data: {\n path = \"2015-05-17 04:31:07 +0000.txt\";\n})"
)
然后我将 documentsUrl.path!
与实体中的 path
结合起来得到 println(stringDocumentsURL)
file:/Users/dustindobrilovic/Library/Developer/CoreSimulator/Devices/5EA056FC-114D-4C98-9B35-29B46760BE3A/data/Containers/Data/Application/7CD25462-947C-40AA-97DB-4A845FED1451/Documents/2015-05-17 04:31:07 +0000.txt
这是我在下一行收到警告的地方。
let fileContent = String(contentsOfFile: stringDocumentsURL, encoding: NSUTF8StringEncoding, error: nil)!
fatal error: unexpectedly found nil while unwrapping an Optional value
>
路径随发布而变化。尝试仅保留路径的相对部分并在访问之前重建绝对路径。
注意:可能已解决:缺少“.path!”到 documentsUrl.path!.stringByAppendingPathComponent(path)
我正在将文本文件保存到应用程序文档目录。使用
var path = ""
let date = NSDate()
let file = "\(date).txt"
let joined = "\n".join(ActionArray)
if let dirs : [String] = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String] {
let dir = dirs[0]
path = dir.stringByAppendingPathComponent(file);
println(path)
joined.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding, error: nil);
}
println path
/Users/dustin/Library/Developer/CoreSimulator/Devices/5EA056FC-114D-4C98-9B35-29B46760BE3A/data/Containers/Data/Application/2AB9FD4A-25AB-4385-9CFB-A66AEFA8C1A3/Documents/2015-05-16 08:24:08 +0000.txt
然后将path
和一些其他数据存储到一个Entity
中,用于稍后回调文本文件。
当我对实体执行 fetchRequest 并打印出数组时,我得到
( " (entity: Entity; id: 0xd000000000040000 ; data: {\n date = \"2015-05-16 08:18:20 +0000\";\n path = \"/Users/dustin/Library/Developer/CoreSimulator/Devices/5EA056FC-114D-4C98-9B35-29B46760BE3A/data/Containers/Data/Application/4A9C17AB-57C1-47CB-B9B1-E0E5CA494B4E/Documents/2015-05-16 08:24:08\";\n})" )
path
现在缺少“+0000”。当我从 Entity.path
调用路径时,找到了我的文本文件...但是当我完全关闭应用程序 (home-swipe-^) 时,文本文件搜索...
let fileContent = String(contentsOfFile: path, encoding: NSUTF8StringEncoding, error: nil)!
var fileContentArr = split(fileContent) {[=11=] == "\n"}
我明白了
fatal error: unexpectedly found nil while unwrapping an Optional value
无论应用程序是否重置,编写一个持久性文本文件供以后使用我做错了什么?
编辑:我听取了注意应用程序会话之间目录路径变化的建议,因此我将文件名存储到 Entity
并在读取时获取文档路径。我仍然遇到错误。
我正在调试,我的 println 如下
let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as! NSURL
// now lets get the directory contents (including folders)
if let directoryContents = NSFileManager.defaultManager().contentsOfDirectoryAtPath(documentsUrl.path!, error: nil) {
println(directoryContents)
println(documentsUrl.path!)
}
[2015-05-17 04:25:48 +0000.txt, 2015-05-17 04:31:07 +0000.txt, iPro_Poker_HH_swift.sqlite, iPro_Poker_HH_swift.sqlite-shm, iPro_Poker_HH_swift.sqlite-wal]
/Users/dustindobrilovic/Library/Developer/CoreSimulator/Devices/5EA056FC-114D-4C98-9B35-29B46760BE3A/data/Containers/Data/Application/7CD25462-947C-40AA-97DB-4A845FED1451/Documents
我的实体获取数组 println()
( " (entity: Hand; id: 0xd000000000080000 ; data: {\n path = \"2015-05-17 04:31:07 +0000.txt\";\n})" )
然后我将 documentsUrl.path!
与实体中的 path
结合起来得到 println(stringDocumentsURL)
file:/Users/dustindobrilovic/Library/Developer/CoreSimulator/Devices/5EA056FC-114D-4C98-9B35-29B46760BE3A/data/Containers/Data/Application/7CD25462-947C-40AA-97DB-4A845FED1451/Documents/2015-05-17 04:31:07 +0000.txt
这是我在下一行收到警告的地方。
let fileContent = String(contentsOfFile: stringDocumentsURL, encoding: NSUTF8StringEncoding, error: nil)!
fatal error: unexpectedly found nil while unwrapping an Optional value
>
路径随发布而变化。尝试仅保留路径的相对部分并在访问之前重建绝对路径。