从Swift中下载的plist中填充TableView

时间:2016-05-08 15:48:21

标签: swift server plist

我希望在没有帮助的情况下解决这个问题,但即使我知道这不是一个困难的问题,我似乎也在进行。所以任何帮助都非常感谢。

我已经设置了我的应用程序,以便从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")
        }
    }
}

1 个答案:

答案 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)