如何在不在iCloud上存储信息的情况下下载文件?
我的应用程序是用于将pdf下载到计算机的应用程序。它被Apple拒绝了,原因是“特别是,我们发现在下载两个问题后,您的应用程序存储了56.5 MB。要检查您的应用程序存储了多少数据: - 转到设置> iCloud。>存储和备份&gt ;管理存储“。如果信息没有存储在iClound上,我想知道如何写。
我的剧本:
- (void) DownloadFile:(NSURL *)url Name:(NSString *)name Folder:(NSString *)folder{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSData *myData = [NSData dataWithContentsOfURL:url];
NSString *file = [NSString stringWithFormat:@"%@/%@",folder,name];
if(![fileManger fileExistsAtPath:file]){
[fileManger createFileAtPath:file contents:myData attributes:nil];
}
}
答案 0 :(得分:0)
只需将PDF存储在应用程序文档目录中。您仍然可以使用iCloud的键值存储来跟踪哪些文件已下载到哪些设备上。但是,要下载到设备上的文件必须来自非iCloud服务器。
您可能还需要实施一个用户界面,以显示哪些文件已下载,哪些文件可用,以及在需要时从设备中删除这些文件。
答案 1 :(得分:0)
OH谢谢你完成
#import <sys/xattr.h>
....
-(BOOL) addSkipBackupAttributeToItemAtURL:(NSURL *)URL{
if(&NSURLIsExcludeFromBackupKey == nil){
const char* filePath = [[URL path] fileSystemRepresentation];
const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1;
int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
return result == 0;
}else{
return [URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:nil];
}
}
- (void) DownloadFile:(NSURL *)url Name:(NSString *)name Folder:(NSString *)folder{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *curfile = [NSURL fileURLWithPath:folder];
[self addSkipBackupAttributeToItemAtURL:curfile];
NSData *myData = [NSData dataWithContentsOfURL:url];
NSString *file = [NSString stringWithFormat:@"%@/%@",folder,name];
if(![fileManger fileExistsAtPath:file]){
[fileManger createFileAtPath:file contents:myData attributes:nil];
}
}
谢谢