Xcode和iOS应用程序数据文件放置默认值

Xcode和iOS应用程序数据文件放置默认值,ios,xcode,Ios,Xcode,我对iOS7-iOS9的理解是否正确: (一) “内置”应用程序缓存路径为NSHomeDirectory()+“/Library/Caches/” (二) 应用程序启动图像和图标放置在NSBundle.mainBundle().resourcePath(此地图向下映射到哪里?) 3) 我在“xcode-构建阶段-复制捆绑资源”中添加的一个名为“ownassets”的“蓝色”文件夹放在了NSHomeDirectory()+“/Library/” 我只是想确保100%我是否正确理解文件的放置位置,以

我对iOS7-iOS9的理解是否正确:

(一) “内置”应用程序缓存路径为NSHomeDirectory()+“/Library/Caches/”

(二) 应用程序启动图像和图标放置在NSBundle.mainBundle().resourcePath(此地图向下映射到哪里?)

3) 我在“xcode-构建阶段-复制捆绑资源”中添加的一个名为“ownassets”的“蓝色”文件夹放在了NSHomeDirectory()+“/Library/”

我只是想确保100%我是否正确理解文件的放置位置,以便在应用程序执行期间读取和加载它们(并在缓存中写入)

注意:我意识到发布代码应该使用系统调用来获取路径,因为苹果可能会在未来的iOS版本中更改路径


注意有关如何获得对您在“构建阶段>复制捆绑资源”中添加的文件夹和内容的正常IO文件读取权限的信息,请参见:NSBundle.mainBundle().resourcePath!+“/”+nameoffolder

您不应该过多考虑磁盘上的实际位置,而应该使用更高级的系统API来查找文件/路径:

  • 缓存目录:

    let cacheURL = try NSFileManager.defaultManager().URLForDirectory(.CachesDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)
    
  • 捆绑包中的应用程序资源:

    • let image=UIImage(名为:“imageName”)
    • let path=NSBundle.mainBundle().pathForResource(“image”,类型为:“png”)
  • 子目录中的应用程序资源:

    let path = NSBundle.mainBundle().pathForResource("info", ofType: "dat", inDirectory: "AdditionalResources")
    

  • 有关更多信息,请参阅。

    您不应过多考虑磁盘上的实际位置,而应使用更高级别的系统API查找文件/路径:

  • 缓存目录:

    let cacheURL = try NSFileManager.defaultManager().URLForDirectory(.CachesDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)
    
  • 捆绑包中的应用程序资源:

    • let image=UIImage(名为:“imageName”)
    • let path=NSBundle.mainBundle().pathForResource(“image”,类型为:“png”)
  • 子目录中的应用程序资源:

    let path = NSBundle.mainBundle().pathForResource("info", ofType: "dat", inDirectory: "AdditionalResources")
    

  • 有关更多信息,请参阅。

    我理解(也将理解),但我正在尝试从概念上理解它(即在脑海中想象文件结构的样子)。我链接的文章将回答这些问题
    nshomeditory()
    是应用程序沙盒目录,而
    NSBundle.mainBundle().bundleURL
    是应用程序的捆绑包,其中包含您在编译时添加的资源。好的-从上面的链接中,我可以看到“在iOS中,库放在应用程序数据捆绑包中”。因此我猜“resourcePath”映射到了这一点(现在,我知道将来可能不会这样)-无论如何,我会马上测试路径,并报告它们的实际参考情况,
    resourcePath
    用于编译时资源,如图像,以及
    pathForResource
    返回的其他内容。为什么不通过
    print()进行测试呢
    ing这些路径?我很快就会理解(并且会理解)这个问题,但我正在尝试从概念上理解它(即在我的脑海中想象文件结构可能是什么样子)。我链接的文章将回答这些问题。
    NSHomeDirectory()
    是应用程序沙盒目录,而
    NSBundle.mainBundle().bundleURL
    是应用程序的捆绑包,其中包含您在编译时添加的资源。好的-从上面的链接中,我可以看到“在iOS中,库放在应用程序数据捆绑包中”。因此我猜“resourcePath”映射到了这一点(现在,我知道将来可能不会这样)-无论如何,我会马上测试路径,并报告它们的实际参考情况,
    resourcePath
    用于编译时资源,如图像,以及
    pathForResource
    返回的其他内容。为什么不通过
    print()进行测试呢
    n如何创建这些路径?我会很快展开这个问题,永远不要使用NSHomeDirectory来创建路径。记住,现在URL比路径更受欢迎。永远不要使用NSHomeDirectory来创建路径。记住,现在URL比路径更受欢迎。