保存初始数据文件的位置?

时间:2015-08-08 08:02:23

标签: ios swift nsbundle

警告,我是一名设计师,在斯威夫特身边磕磕绊绊,所以提前道歉,因为我的无知。

我正在处理的应用程序将附带包含所有数据的JSON数据文件(以便无需连接即可访问该应用程序)。当应用程序运行时,我检查一个远程JSON文件,看看是否有任何数据更新。如果有新数据,那么我将使用较新的JSON文件覆盖本地文件。

我的问题与代码没有直接关系,而是与iOS文件系统有关。我知道我无法写入主包,那么我在哪里放置起始JSON文件以便我可以从Documents目录中访问它? 我理解如何使用代码和所有这些将新文件保存到Documents中,但我不知道如何将JSON文件放入Documents目录中开始。

正确方向上的一点很棒。

由于

2 个答案:

答案 0 :(得分:2)

您将初始文件放入捆绑包并将其永久保留在那里。如果您下载了一个较新的文件,因为如果需要可以再次下载该文件,操作系统应该可以随时删除它,并且不应该备份该文件。因此,您将它放入缓存目录。如果你立即复制文件,Apple的评论员不喜欢它。

当应用程序启动时,您将检查缓存目录中是否有文件。如果它在那里,你使用它并检查其版本号。如果不存在,则从捆绑中获取文件。在任何一种情况下,您都要检查后台是否有更新的版本。

做的一件事是在你的包中复制文件。

答案 1 :(得分:1)

这可能对您有所帮助。通过使用此功能,您可以在应用程序数据中创建文件或从应用程序数据中获取文件。

   var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String
   var dirPath = paths.stringByAppendingPathComponent("XYZ/")

   var docPath = paths.stringByAppendingPathComponent("XYZ/xyz.json" )
   println(docPath)
   var checkImage = NSFileManager.defaultManager()

   if (checkImage.fileExistsAtPath(docPath)) {


    } else
    {
         checkImage.createDirectoryAtPath(dirPath, withIntermediateDirectories: true, attributes: nil, error: nil)

    }

删除特定用途

   checkImage.removeItemAtPath(imagePath, error: nil)