我希望在没有帮助的情况下解决这个问题,但即使我知道这不是一个困难的问题,我似乎也在进行。所以任何帮助都非常感谢。
我已经设置了我的应用程序,以便从plist中的数据填充地图和TableView。一切顺利。但是现在我从服务器下载plist,当然,它会将文件放在文档目录中。我的问题是,从目录而不是从包中读取它的Swift代码是什么?
这是从应用程序包中读取的一些代码(注意它一切正常,但我不在这里提供所有代码。请不要指向Apple开发者网站 - 我看过了):
if let path = NSBundle.mainBundle().pathForResource("testData", ofType: "plist"){
if let arrayOfDictionaries = NSArray(contentsOfFile: path){
for dict in arrayOfDictionaries {
tableData.append(dict.objectForKey("title") as! String)
stateData.append(dict.objectForKey("state") as! String)
codeData.append(dict.objectForKey("code") as! String)
infoData.append(dict.objectForKey("info") as! String)
}
}
这是从服务器下载plist的代码:
func URLSession(session: NSURLSession,
downloadTask: NSURLSessionDownloadTask,
didFinishDownloadingToURL location: NSURL){
let path = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let documentDirectoryPath:String = path[0]
let fileManager = NSFileManager()
let destinationURLForFile = NSURL(fileURLWithPath: documentDirectoryPath.stringByAppendingString("/testData.plist"))
if fileManager.fileExistsAtPath(destinationURLForFile.path!){
showFileWithPath(destinationURLForFile.path!)
}
else{
do {
try fileManager.moveItemAtURL(location, toURL: destinationURLForFile)
// show file
showFileWithPath(destinationURLForFile.path!)
}catch{
print("An error occurred while moving file to destination url")
}
}
}
答案 0 :(得分:0)
管理对此进行排序。奇怪的是,人们可以花几个小时来考虑某事。然后第二天早上似乎很明显 - 并且没有其他SO帖子的帮助:-) !!!
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
let sourcePath = documentsPath.stringByAppendingPathComponent("testData.plist")
let dict = NSDictionary(contentsOfFile: sourcePath as String)