在本文中,我们主要绍介文档容器的容内,自我感觉有个不错的建议和大家分享下

iCloud文档存储程编对相键值据数存储而言比较复杂,涉及到自定义文档类、取得iCloud文档录目、找查Ubiquity容器中的文档、保存文档和决解文档冲突等容内。

实例:iCloud文档存储程编设计

实例绍介一下iCloud文档存储程编进程,画面中有一个文本框和一个按钮控件,在设备1入输容内,点击“存保据数”按钮,将据数存保iCloud服务器。右图是设备2画面,过几秒钟后设备2上会取读iCloud服务器端据数,并示显在文本框中。

配置Xcode程工

编写iCloud文档存储编应用程序也须要在Xcode程工中进行一些配置,选择TAGETS→MyNotes→Summary→Entitlements

在图中Ubiquity Contrainers加添com.51work6.MyNotes,这是Ubiquity容器标识,可以有多个Ubiquity容器标识,这个容器标识代表着不同的录目。com.51work6.MyNotes代表录目如下所示:

/var/mobile/Library/Mobile Documents/98Z3R5XU29~com~51work6~MyNotes/

其中的98Z3R5XU29是在iOS开发者配置门户网站建创App ID时候生成的,它被称为Team ID。

如果应用中没有用使iCloud键值据数存储key-Value Store可以不必配置。

自定义文档类

我们须要自己装封一个文档类,它继承抽象类UIDocument,而UIDocument实现NSFilePresenter协议。实现NSFilePresenter协议的类,它所代表的文件和录目可以被查看和编辑,这些NSFilePresenter实现类与文件协调者类NSFileCoordinator结合用使,可以协调理管文件或录目。

这个类我们命名为MyCloudDocument, MyCloudDocument的代码如下:

每日一道理
记不清有多少个夜晚,在我翻阅纸张的指间滑落;记不清有多少支蜡烛,在我的凝视中化为灰烬。逝者如斯,我时时刻刻会听见自己对生命承诺的余音,感到岁月的流转在渐渐稀释我的年少无知,我愿自己是一只上足了发条的时钟,在昼夜不停的流转中留下自己充实的每一刻。
#import <UIKit/UIKit.h>@interface MyCloudDocument : UIDocument ①@property (strong, nonatomic) NSString *contents;@end#import ”MyCloudDocument.h”@implementation MyCloudDocument//加载据数- (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError **)outError ②{if ([contents length] > 0){self.contents = [[NSString alloc] initWithData:contents encoding:NSUTF8StringEncoding]; ③}return YES;}//存保据数- (id)contentsForType:(NSString *)typeName error:(NSError **)outError ④{return [self.contents dataUsingEncoding:NSUTF8StringEncoding];  ⑤}@end

取得iCloud文档录目

iCloud文档录目是指在Ubiquity容器下的Document录目,因此取得了Ubiquity容器的根录目,以可就取得的iCloud文档录目了。

ViewController.m中的 ubiquitousDocumentsURL方法可以iCloud文档录目:

//求请地本Ubiquity容器,从容器中取得Document录目URL- (NSURL *)ubiquitousDocumentsURL {NSFileManager* fileManager = [NSFileManager defaultManager]; ①NSURL* containerURL = [fileManagerURLForUbiquityContainerIdentifier:@"98Z3R5XU29.com.51work6.MyNotes"]; ②containerURL = [containerURL URLByAppendingPathComponent:@"Documents"]; ③return containerURL;}

找查Ubiquity容器中的文档

取得iCloud文档录目后,我们须要找到容器中的文件。查询容器中的文件须要册注两个广播通知:

NSMetadataQueryDidFinishGatheringNotification  查询结束收回通知;

NSMetadataQueryDidUpdateNotification  查询结束,进入开始更新阶段收回的通知;

ViewController.m中册注和除解通知代码如下:

- (void)viewDidLoad{[super viewDidLoad];//为查询iCloud文件的变更,册注通知[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(updateUbiquitousDocuments:)name:NSMetadataQueryDidFinishGatheringNotification object:nil];[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(updateUbiquitousDocuments:)name:NSMetadataQueryDidUpdateNotification object:nil];//查询iCloud文件的变更[self searchFilesOniCloud];}- (void)didReceiveMemoryWarning{[super didReceiveMemoryWarning];[[NSNotificationCenter defaultCenter] removeObserver:self];}

存保文档 

存保文档很简单,它是在ViewController.m中的 saveClick:方法理处的,saveClick:方法是点击按钮时候触发:

- (IBAction)saveClick:(id)sender {_myCloudDocument.contents = _txtContent.text;[_myCloudDocument updateChangeCount:UIDocumentChangeDone];[_txtContent resignFirstResponder];}

存保胜利以后我们可以在其它设备上看看是不是iCloud中已经有abc.txt文档了。如果用使Mac OS X系统脑电,我们可以在“系统偏好设置”中打开iCloud对话框,点击“理管”按钮可以打开iCloud间空理管对话框,其中的MyNotes是我应用名,右侧的abc.txt建创的文件。

如果在iPhone、iPod touch和iPad等iOS设备中查看,可以启动设置应用程序,也进入到存储间空理管中,我的iPod touch中查看的情况。

出自《iOS络网程编与云端应用最佳实践》作者:关东升 @tony_关东升

文章结束给大家分享下程序员的一些笑话语录: 这年头的互联网真是娱乐了中国,网民们从各种各样的“门”里钻来钻去,又有好多“哥”好多“帝”,值得大家品味不已……网络经典语录,关于IT与互联网,经典与您分享!

转载于:https://www.cnblogs.com/jiangu66/archive/2013/05/02/3055411.html

文档容器iOS网络编程-iCloud文档存储编程实例相关推荐

  1. iOS网络——身份认证

    iOS网络身份认证 文档 URL Session Programming Guide中重要的类如下: 在Networking Overview--Making HTTP and HTTPS Reque ...

  2. iOS网络编程-配置iCloud-图文解说

    配置iCloud 开发iCloud应用一方面需要准备真实的iOS设备,另一方面还需要有iOS开发者账号, 使 用iOS开发者账号登录到iOS开发中心的配置门户网站(iOS Provisioning P ...

  3. iOS 开发之 pdf 文档的加载与浏览的 4 种方式

    原文链接:http://www.jianshu.com/p/1d4305a02ea5 在我们的开发中,有些像电子书类型的 app 的开发会涉及到 pdf 文档的加载与展示.由于笔者项目中正好涉及到这块 ...

  4. 淘宝资深java技术专家整理分享java异步编程实战文档

    前言 本文由淘宝资深java技术专家爆肝整理分享的java异步编程实战文档,针对常见异步编程场景,从编程语言.开发框架等角度深入讲解异步编程的原理和方法,每个技术点都附有案例代码! 通常Java开发人 ...

  5. iOS网络编程-iCloud键值数据存储编程实例

    iCloud键值数据存储设计 iCloud键值数据存储编程实例,画面中有两个开关控件,左图是设备1点击"设置iCloud数据"按钮,将控件状态保存到iCloud服务器.右图是设备2 ...

  6. 苹果手机iOS自带原生文档扫描功能,秒杀所有文档扫描软件

    很多小伙伴不知道IOS是自带文档扫描工具的.多数文档扫描需求都是通过appstore下载app来进行满足,而这些app除了扫描效果不理想外,部分app还会额外收费.今天小编就教大家如何用IOS自带功能 ...

  7. 动态生成word文档原来如此简单!Aspose.Words助力以Java编程方式创建丰富的Word文档

    近年来,Word文档的动态生成已成为组成报告,报价,发票和其他类型文档的流行功能.各种制造公司都基于数据库中存储的数据生成发票.在这种情况下,文档自动化可以节省手动文档创建过程中所需的时间,精力和资源 ...

  8. 网络编程之一文读懂什么是IPv6

    网络编程之一文读懂什么是IPv6 复习一下什么是IPv4? IPv6又是什么? 为什么要使用IPv6? IPv6会带给我们什么? IPv6的优点这么多,为什么之前普及却这么慢? NAT这类技术,让IP ...

  9. Win10桌面图标怎么显示“我的电脑“,“网络“,“我的文档“,“控制面板“图标

    Windows Server 2012 在桌面上显示"我的电脑" 如果是在Windows Server 2012本地控制台下,直接按Win(键盘上的微软徽标键)+R,输入: run ...

最新文章

  1. 客户端发送消息时,源码运行的大致流程
  2. python(numpy,pandas3)——numpy索引
  3. 使用Spring WebFlux从Corda节点流式传输数据
  4. bzoj 4031 [HEOI2015]小Z的房间
  5. 一周随笔--15.10.06
  6. HDU1591 Encoded Love-letter【密码】
  7. SQLite语法与Android数据库操作
  8. (一)伤不起--java调用dll
  9. matlab迭代法求某数平方根,MATLAB平方根法和改进平方根法求解线性方程组例题与程序要点.doc...
  10. IP修改后自动还原(IP地址无法修改)
  11. 区块链开发入门到精通
  12. 软件测试归纳法调试,《软件测试艺术》读书笔记(34)_归纳法、演绎法、回溯法、测试法调试及其原则、错误分析...
  13. redis-狂神基础版
  14. Java中的IO整理
  15. 如何实现通过Leaflet加载dwg格式的CAD图
  16. Mysql之分组查询
  17. python秒表项目_第一个Python小项目——秒表
  18. Python:Excel自动录入、Excel表格快速合并(附有源代码)
  19. 【Web 技术】818- 一文带你层层解锁「文件下载」的奥秘
  20. 拿了6家银行信息岗offer的一些经验

热门文章

  1. java中如何调用dal接口案例_关于Java:接口的目的
  2. java中datetime类型转换,Java中日期格式和其他类型转换详解
  3. dataframe转化为array_【Python专栏】12 种高效 Numpy 和 Pandas 函数为你加速分析
  4. C++中比较两个浮点数是否相等
  5. Nim游戏的一个扩展——51nod 1661 黑板上的游戏+LA 5059 Playing With Stones
  6. 忘记手势密码的解决办法
  7. 树莓派c语言运行_树莓派完成简单的编程(四)
  8. HDU1573-模线性方程
  9. Linux IO复用区别与epoll详解
  10. leetcode(283)移动零