【发布时间】:2014-07-09 06:04:15
【问题描述】:
我知道我正在下载托管的应用内购买。 它将托管的 In App Purchase 内容下载到 Cache 目录,但由于我需要托管 In App Purchase 内容才能永久保存,我需要将其移动到 Documents 目录。
一旦它在那里,我就需要实际访问内容。
我正在使用
NSURL *url = download.contentURL;
NSError *error = nil;
NSArray *properties = [NSArray arrayWithObjects: NSURLLocalizedNameKey,
NSURLCreationDateKey, NSURLLocalizedTypeDescriptionKey, nil];
NSArray *zipContentsArray = [[NSFileManager defaultManager]
contentsOfDirectoryAtURL:url
includingPropertiesForKeys:properties
options:(NSDirectoryEnumerationSkipsHiddenFiles)
error:&error];
显示缓存中的输出
The download's contentURL is
file:///private/var/mobile/Applications/**/Library/Caches/***.zip/
zipContentsArray = (
"file:///private/var/mobile/Applications/***/Library/Caches/***.zip/ContentInfo.plist",
"file:///private/var/mobile/Applications/***/Library/Caches/***.zip/Contents/",
"file:///private/var/mobile/Applications/**/Library/Caches/***.zip/META-INF/"
)
我将如何访问内容(即使是在 Caches 文件夹中 - 我假设无论其位置如何,这都是相同的过程)?
令人抓狂的是,Apple 提供的有关整个过程的文档很少,因此我们会非常欢迎任何帮助。
【问题讨论】:
-
“它把它下载到缓存目录”:什么是“它”?这似乎是一个关于递归移动目录的问题;对吗?
-
@trojanfoe "it" 是托管的应用内购买内容 - 我想问题是两部分:首先,如何将下载的内容从 Caches 目录移动到 Documents 目录。其次,我有后如何使用。
-
Caches 目录只有在用户卸载应用(或者您提供了清除缓存的界面)时才会被删除。你有什么理由不想把它放在那里?此外,用户可以看到文档目录,因此您可能根本不希望这样做。
-
@remus IAP 的标准是什么——比如游戏关卡或音频?在 Apple 的文档中,他们说“下载完成后,您的应用程序负责将其移动到适当的位置。”这意味着它应该被移动。它还说“对于如果设备用完磁盘空间(然后由您的应用程序重新下载)可以删除的内容,请将文件保留在 Caches 目录中。否则,将文件移动到 Documents 文件夹并设置标志将它们从用户备份中排除。”如果设备空间不足,缓存将被删除。
-
是的,这是一个公平的观点。你可能想把它保存在文档中。
标签: ios objective-c ios7 in-app-purchase