0

iCloudに情報を保存せずにファイルをダウンロードするにはどうすればよいですか?

私のアプリは、PDFをマシンにダウンロードするためのアプリです。「特に、2つの問題をダウンロードした後、アプリは56.5 MBを保存することがわかりました。アプリが保存しているデータの量を確認するには:-[設定]>[iCloud]>[ストレージとバックアップ]>[管理]に移動します。ストレージ "。情報が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];
    }
}
4

2 に答える 2

0

PDF をアプリケーション ドキュメント ディレクトリに保存するだけです。iCloud のキー値ストアを使用して、どのファイルがどのデバイスにダウンロードされたかを引き続き追跡できます。ただし、デバイスにダウンロードするファイルは、iCloud 以外のサーバーから取得する必要があります。

おそらく、どのファイルがダウンロードされ、どのファイルが利用可能かを表示し、必要に応じてデバイスから削除するための UI も実装する必要があります。

于 2012-06-08T09:00:19.030 に答える
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];
    }
}

ありがとうございました

于 2012-06-09T05:38:38.803 に答える