从 Swift 中的文件加载 NSMutableArray
Load a NSMutableArray from a file in Swift
我正在将 NSMutableArray 成功保存到文件,但无法加载此数组。
这是我的 loadVocab() 方法
func loadVocab() {
let pathsArray = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let documentsDirectory = pathsArray[0] as String
let vocabPath = documentsDirectory.stringByAppendingPathComponent("vocab")
if NSFileManager.defaultManager().fileExistsAtPath(vocabPath){
self.myWords = NSMutableArray(contentsOfFile: vocabPath)
}
}
这是我的保存方法
func saveVocab() {
let pathsArray = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let documentsDirectory = pathsArray[0] as String
let savePath = documentsDirectory.stringByAppendingPathComponent("vocab")
self.myWords.writeToFile(savePath, atomically: true)
}
加载函数不起作用,我得到一个空的可变数组。保存功能工作正常。
感谢您的帮助。
我想我在这里发现了问题,您没有使用文件扩展名保存数组,它只是指向目录。
let savePath = documentsDirectory
让文件路径 = 保存路径 + "vocab.data"
现在保存文件路径
将文件数据检索到数组时,您应该做同样的事情。
我决定使用 Parse.com 缓存策略作为两个服务器连接之间的本地存储。
这是我使用 Parse 查询的方式:
self.myData = NSMutableArray()
var query = PFQuery(className:"entries")
query.cachePolicy = kPFCachePolicyCacheThenNetwork
query.maxCacheAge = 60 * 60 * 24 // 24h maximum cache
query.limit = self.limit
query.orderByDescending("createdAt")
我不需要将我的可变数组保存到文件中,因为将使用缓存。更多信息在这里 https://www.parse.com/docs/ios_guide#top/iOS
我正在将 NSMutableArray 成功保存到文件,但无法加载此数组。
这是我的 loadVocab() 方法
func loadVocab() {
let pathsArray = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let documentsDirectory = pathsArray[0] as String
let vocabPath = documentsDirectory.stringByAppendingPathComponent("vocab")
if NSFileManager.defaultManager().fileExistsAtPath(vocabPath){
self.myWords = NSMutableArray(contentsOfFile: vocabPath)
}
}
这是我的保存方法
func saveVocab() {
let pathsArray = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let documentsDirectory = pathsArray[0] as String
let savePath = documentsDirectory.stringByAppendingPathComponent("vocab")
self.myWords.writeToFile(savePath, atomically: true)
}
加载函数不起作用,我得到一个空的可变数组。保存功能工作正常。 感谢您的帮助。
我想我在这里发现了问题,您没有使用文件扩展名保存数组,它只是指向目录。
let savePath = documentsDirectory
让文件路径 = 保存路径 + "vocab.data" 现在保存文件路径
将文件数据检索到数组时,您应该做同样的事情。
我决定使用 Parse.com 缓存策略作为两个服务器连接之间的本地存储。
这是我使用 Parse 查询的方式:
self.myData = NSMutableArray()
var query = PFQuery(className:"entries")
query.cachePolicy = kPFCachePolicyCacheThenNetwork
query.maxCacheAge = 60 * 60 * 24 // 24h maximum cache
query.limit = self.limit
query.orderByDescending("createdAt")
我不需要将我的可变数组保存到文件中,因为将使用缓存。更多信息在这里 https://www.parse.com/docs/ios_guide#top/iOS