【问题标题】:Can I save the downloaded files to NSCacheDictionary in iphone?我可以将下载的文件保存到 iPhone 中的 NSCacheDictionary 吗?
【发布时间】:2012-08-08 04:51:42
【问题描述】:

我正在使用 NSURLConnection 通过我的应用程序下载一些 mp3 文件。其实我可以在哪里保存下载的文件。有人说保存到 NSDocumentDirectory 会导致应用被拒绝。

我可以将文件保存到 NSCacheDictionary 并从 iTunes 中检索吗?

我使用这段代码将文件保存到 NSCacheDictionary

   NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(
                                                            NSCachesDirectory, NSUserDomainMask, YES)
                        objectAtIndex: 0];
   NSString *documentsDirectoryPath = [cachesPath stringByAppendingPathComponent:@"music.mp3"];
  [receivedData writeToFile:documentsDirectoryPath atomically:YES];

我可以这样使用吗?

【问题讨论】:

    标签: iphone itunes nsdocumentdirectory nscache


    【解决方案1】:

    如果您将文件保存到NSCacheDictionary,您将无法从 iTunes 中检索它们。

    编辑: 您可以将 mp3 文件存储到 NSDocumentDirectory 并设置“不备份”标志 要设置标志,您可以查看Technical Q&A QA1719

    有关更多信息,您可以查看the docs

    具体来说:

    将此属性用于可以重新创建但需要重新创建的数据 即使在存储空间不足的情况下也能保持您的正常运行 应用程序或因为客户希望它在离线使用期间可用。 此属性适用于标记的文件,无论它们位于哪个目录 都在,包括 Documents 目录。

    【讨论】:

    • 那么我在哪里可以保存我的 mp3 文件,并且想稍后从 iTunes 访问它。
    • 好的,我想我可以使用“在 iOS 5.1 上从备份中排除文件”,从 iTunes 备份文件时有什么问题吗?
    • @neerajPK 没有。我不知道有任何问题。它会像魅力一样起作用。 :)
    • 还有一个疑问,我使用了链接中的第一个代码,但在 assert([[NSFileManager defaultManager] fileExistsAtPath: [URL1 path]]); ,但是当我尝试使用第二个代码时,没有发现问题。我可以用第二种方法吗?
    • @neerajPK 如果您的应用程序在 iOS 5.1 上运行,您应该使用它自己的第一种方法,您不应该使用第二种方法。正如文档中建议的那样。如果您的应用程序在 iOS 5.0.1 上运行,您应该使用第二种方法。 iOS 5.0.1 以下不支持从备份中排除文件。对于崩溃,您能否确认两个 URL 相同且正确。要创建 URL,您应该使用 + (id)fileURLWithPath:(NSString *)path 方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2023-04-10
    相关资源
    最近更新 更多