iOS开发-iCloud的简单使用(1)-配置iCloud环境以及key-value storage的使用

苹果最近发出消息说iCloud服务要转到国内来了,正好趁着这个机会研究一下iCloud到底要怎么用。

现在各大互联网厂商都会提供一点云端服务,苹果也不例外,iCloud就是苹果的云端服务,用户可以在这里备份通讯录、邮件、照片、音乐等等iOS原生系统中的数据,并且可以在各个苹果设备之间无缝连接,虽然苹果在iOS5(好像是)发布的时候大吹特吹了一把iCloud,但是后来的使用过程中好像iCloud是各种坑爹。不过随着技术的提升,最近iCloud也变得越来越好,对开发者的支持也是越来越方便了。

配置iCloud

配置iCloud,首先你就先要有一个真实的苹果开发者账号,没错,就是一年688的那个。开通了之后,在Xcode中新建一个项目。然后在 TARGETS -> Capabilities -> iCloud中打开开关就可以了。

就像这样,是不是很简单啊。

iOS开发-iCloud的简单使用(1)-配置iCloud环境以及key-value storage的使用_第1张图片
iCloud_1.png

诶,可是好像有什么地方不对,有些地方爆红了。

这是因为我们还没有给这个App ID 注册,所以接下来我们去苹果的 开发者官网 添加一个App ID,在添加的时候勾选 iCloud 服务就可以啦。

iOS开发-iCloud的简单使用(1)-配置iCloud环境以及key-value storage的使用_第2张图片
iCloud-2.png

什么?你说你已经创建过App ID了???没关系,在管理App ID这边选择 Edit,然后在勾选iCloud也是一样的。

iOS开发-iCloud的简单使用(1)-配置iCloud环境以及key-value storage的使用_第3张图片
iCloud-3.png

这时候回到Xcode中在看一下,应该就已经没有爆红了吧。

什么???还有爆红??? 那你重启一下XCode试试吧。再不行,你重启一下电脑试试好了。

Key-value storage

在Xcode中 iCloud下边一共有三个可以勾选的服务,其中第一个就是key-value storage,这个也是最简单的iCloud使用方法了,他跟NSUserDefaults的使用方法基本一样,都是以键值对的方式存储数据。只不过处理iCloud的类为NSUbiquitousKeyValueStore

存储数据

存储数据的方式很简单,只要使用 setObject:forkey:之后,使用synchronize同步一下就可以了。


 NSUbiquitousKeyValueStore *keyValueStore = [NSUbiquitousKeyValueStore defaultStore];

 [keyValueStore setObject:@"test message" forKey:@"test"];

 [keyValueStore synchronize];

获取数据

获取数据的方式也一样,是要使用 objectForKey就可以了。


 NSUbiquitousKeyValueStore *keyValueStore = [NSUbiquitousKeyValueStore defaultStore];

 NSString *testString = [keyValueStore objectForKey:@"test"];

 NSLog(@"%@",testString);

数据改变通知

看一下NSUbiquitousKeyValueStore的头文件,我们发现他还有一个通知消息


FOUNDATION_EXPORT NSNotificationName const NSUbiquitousKeyValueStoreDidChangeExternallyNotification API_AVAILABLE(macos(10.7), ios(5.0), watchos(2.0), tvos(9.0));

注册这个通知,就可以在数据修改的时候接收到通知,然后做对应的处理。最好的验证方法就是在存储了数据之后直接删除掉这个app,然后再次安装,这个时候就会触发该通知。


 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(storeDidChange:) name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification object:[NSUbiquitousKeyValueStore defaultStore]];


- (void)storeDidChange:(NSUbiquitousKeyValueStore *)defaultStore

{

 NSLog(@"%@",defaultStore);

}

Demo

先放一下demo的[地址。

iOS开发-iCloud的简单使用(1)-配置iCloud环境以及key-value storage的使用_第4张图片
KeyValueDemo.gif

以上就是关于配置iCloud和key-value存储的简单使用,后边我们再看看其他两种服务是怎么样使用的。

你可能感兴趣的:(iOS开发-iCloud的简单使用(1)-配置iCloud环境以及key-value storage的使用)