文档容器iOS网络编程-iCloud文档存储编程实例

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

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

    

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

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

    14

    配置Xcode程工

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

    15

    在图中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建创的文件。

    16

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

    17

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS3之伪元素选择器和伪类选择器

伪类选择器&#xff0c;和一般的DOM中的元素样式不一样&#xff0c;它并不改变任何DOM内容。只是插入了一些修饰类的元素&#xff0c;这些元素对于用户来说是可见的&#xff0c;但是对于DOM来说不可见。伪类的效果可以通过添加一个实际的类来达到。 a:link|a:visited|a:hover|a…

CSS只是进化的一部分

Bert Bos是一位计算机科学家&#xff0c;他也是CSS的创始人之一。在CSS的发展过程中&#xff0c;Bos是最早与Hkon Wium Lie&#xff08;CSS之父&#xff09;合作的人之一。在1996年&#xff0c;他加入了World Wide Web Consortium&#xff08;W3C&#xff09;负责CSS的开发。他…

【 Grey Hack 】WIFI万能钥匙

目录脚本源码使用方法效果版本&#xff1a;Grey Hack v0.7.3618 - Alpha 脚本源码 computer get_shell.host_computer status "Unknown Error." crypto include_lib("/lib/crypto.so") if not crypto thencrypto include_lib(current_path "/cr…

面向对象编程学习5月7日-5月23日 网络直播yii-外企使用最多的PHP框架

每日一贴,今天的内容关键字为面向对象编程学习 课程说明: -------------------------------------------------------------------------------------------------------------- 9天玩转大型php框架Yii&#xff08;即将开始&#xff09;&#xff08;如何加入费免公然讲堂&#…

[BZOJ4008]亚瑟王

Description 小 K 不慎被 LL 邪教洗脑了&#xff0c;洗脑程度深到他甚至想要从亚瑟王邪教中脱坑。 他决定&#xff0c;在脱坑之前&#xff0c;最后再来打一盘亚瑟王。既然是最后一战&#xff0c;就一定要打得漂亮。众所周知&#xff0c;亚瑟王是一个看脸的游戏&#xff0c;技能…

PHP 四种基本排序算法的代码实现(2)

2019独角兽企业重金招聘Python工程师标准>>> 许多人都说算法是程序的核心&#xff0c;算法的好坏决定了程序的质量。作为一个初级phper&#xff0c;虽然很少接触到算法方面的东西。但是对于基本的排序算法还是应该掌握的&#xff0c;它是程序开发的必备工具。这里介…

【 Grey Hack 】综合工具 shellOs

目录交互界面基本功能本地攻击攻击本机远程攻击应用程序扫描功能更新IP并扫描深度扫描黑入功能类shell交互界面一些特殊命令bouncerunScanPswvimbuild脚本源码版本&#xff1a;Grey Hack v0.7.3619 - Alpha 交互界面 基本功能 使用cd命令和数字选项切换路径 本地攻击 攻击本…

明天开始新的作息时间了

论文基本完成了&#xff0c;要开始规划新的任务了。天气很好&#xff0c;利用好时间。 明天开始锻炼身体了&#xff0c;早上的单词放到晚上学习了&#xff0c;早上一边晨练一边听力。转载于:https://www.cnblogs.com/pulan/archive/2013/05/06/3063465.html

HttpContext.Current.Cache和HttpRuntime.Cache的区别,以及System.Runtime.Caching

先看MSDN上的解释&#xff1a; HttpContext.Current.Cache&#xff1a;为当前 HTTP 请求获取Cache对象。 HttpRuntime.Cache&#xff1a;获取当前应用程序的Cache。 我们再用.NET Reflector工具看看HttpContext.Cache和HttpRuntime.Cache的实现&#xff1a; Ht…

HIVE 一行转多行输出办法

2019独角兽企业重金招聘Python工程师标准>>> 1.问题描述 hive UDF 格式&#xff1a;oc号1_an号1_次数;oc号2_an号2_次数 转换结果&#xff1a; oc号1 an号1 次数 oc号2 an号2 次数 一行转多行&#xff0c;一行转多列 2.实现思路 第一步分割&#xff1a;split(oc号…

javascript/jquery获取图片的原始大小

实际生产过程中&#xff0c;我们往往有需要获得一个被压缩的图片的真实原始大小。此时我们可以用下面这个代码来实现&#xff1a; [js] // Get on screen image var screenImage $("#image"); // Create new offscreen image to test var theImage new Image(); th…

【机器视觉学习笔记】直方图的绘制及直方图均衡化(C++)

目录概念直方图定义直方图均衡化为什么要选用累积分布函数如何运用累积分布函数使得直方图均衡化C 源码直方图均衡化绘制直方图主函数效果完整源码平台&#xff1a;Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文综合自直方图计算和程序员-图哥——图像处理之直方图均…

盒模型

CSSDIV 将数据封装到div中&#xff0c;页面中都是有很多div组成的&#xff0c;通过css布局(通过css属性布局)完成这些div位置的存放&#xff0c;一个div就是一个盒子。 边框   border:{ --left --right --top --bottom }; #div_1{ border-top:1px solid #ccc; border-bottom:…

C/C++ 如何劫持别人家的命令||函数||程序(只能对于window而言)

要实现下面程序&#xff0c;首先我们需要三个文件 detours.h &#xff0c;detours.lib &#xff0c;detver.h&#xff08;可以去网上下载&#xff09; 1. 首先让我们看看&#xff0c;一个最简单的C程序&#xff0c;如何劫持system函数. 1 #include<stdio.h>2 #include<…

【机器视觉学习笔记】伽马变换(C++)

目录概念C源码变换函数主函数效果完整源码平台&#xff1a;Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文内容节选自《数字图像处理》第三版 C源码修改自C数字图像处理&#xff08;1&#xff09;-伽马变换 —— 图像大师 概念 C源码 变换函数 //函数名&#xff1…

soapui自带的webservice实例 MockService

soapui自带的webservice实例 & MockService&#xff1a; http://www.docin.com/p-646423228.html 转载于:https://www.cnblogs.com/preftest/archive/2013/05/09/3070243.html

数据库和数据挖掘领域的会议和期刊

数据库和数据挖掘领域的会议和期刊数据库领域主要专注于数据库系统和数据管理算法&#xff0c;而数据挖掘主要是专注于数据价值分析算法。一、数据库领域的主要会议数据库领域的顶级会议SIGMOD、ICDE、VLDB&#xff0c;下面将对这三大会议进行一下简单介绍。 SIGMOD-----------…

lxml库的基本使用

Python之lxml模块的使用&#xff1a;1. 认识lxml2. lxml中基本使用2.1 安装并导入lxml模块2.2 节点操作&#xff1a;2.3 属性操作&#xff1a;2.4 文本操作2.5 xml文件解析与序列化2.6 lxml命名空间的处理3. 使用lxml解析xml案例4. 使用lxml生成一个xml文件案例&#xff1a;5. …

Linux文件查找之find秘笈

前言Linux的基本特点之一是一切皆文件&#xff0c;在系统管理过程中难免会需要查找特定类型的文件&#xff0c;那么问题来了&#xff1a;如何进行有效且准确的查找呢&#xff1f;本文将对Linux系统中的文件查找工具及用法进行详细讲解。常用工具对比常用的文件查找工具主要有lo…

【机器视觉学习笔记】大津法/Otsu最大类间方差法 最佳阈值处理(C++)

目录概念C源码OtsuThreshold主函数效果完整源码平台&#xff1a;Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文所用源码修改自C opencv 图片二值化最佳阈值确定&#xff08;大津法,OTSU算法)——Sharon Liu 概念 Otsu算法&#xff0c;也叫最大类间方差法&#xff0…