gpt4 book ai didi

objective-c - 如何在 iCloud 中保存 NSData

转载 作者:搜寻专家 更新时间:2023-10-30 20:05:59 24 4
gpt4 key购买 nike

我的应用程序中有 NSData,我想将该数据保存在 iCloud 中。我不想将我的 NSUserDefaults 与 iCloud 同步,所以它不是“Can I use iCloud to sync the NSUserDefaults plist file”的克隆。那可能吗?我怎样才能做到这一点?我怎样才能检索保存的数据?

最佳答案

是的,这是可能的。我以前做过,我的答案是 syncing zip with iCloud ,我在其中创建 zip 并将其转换为 NSData 并与 iCloud 同步,稍后我收到 NSData 并再次将其转换回 zip 并解压缩内容。在这里,您的主要需求是 NSData 的同步,因此您需要为 NSData 工作。

1) 创建UIDocument的子类

#import <UIKit/UIKit.h>

@interface MyDocument : UIDocument
@property (strong) NSData *dataContent;
@end

2) MyDocument.m

#import "MyDocument.h"

@implementation MyDocument
@synthesize dataContent;

// Called whenever the application reads data from the file system
- (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError **)outError
{
self.dataContent = [[NSData alloc] initWithBytes:[contents bytes] length:[contents length]];
[[NSNotificationCenter defaultCenter] postNotificationName:@"noteModified" object:self];
return YES;
}

// Called whenever the application (auto)saves the content of a note
- (id)contentsForType:(NSString *)typeName error:(NSError **)outError
{
return self.dataContent;
}

@end

3)与iCloud同步(你可以根据需要做)

-(IBAction) iCloudSyncing:(id)sender
{

NSURL* ubiq = [[NSFileManager defaultManager]URLForUbiquityContainerIdentifier:nil];
NSURL *ubiquitousPackage = [[ubiq URLByAppendingPathComponent:@"Documents"] URLByAppendingPathComponent:@"iCloudPictures.zip"];

MyDocument *mydoc = [[MyDocument alloc] initWithFileURL:ubiquitousPackage];
NSData *data = << YOUR NSDATA >>;
mydoc.dataContent = data;

[mydoc saveToURL:[mydoc fileURL] forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success)
{
if (success)
{
NSLog(@"Synced with icloud");
}
else
NSLog(@"Syncing FAILED with icloud");

}];
}

希望这有帮助..

关于objective-c - 如何在 iCloud 中保存 NSData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15198492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com