文档容器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;如何加入费免公然讲堂&#…

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

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

【 Grey Hack 】综合工具 shellOs

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

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号…

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

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

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…

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…

HTML 页面源代码布局介绍

此介绍以google首页源代码截图为例&#xff1a; 从上到下依次介绍&#xff1a; 1.<!DOCTYPE html> 此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。 XHTML规范&#xff1a;必须小写&#xff0c;有开始结束标签&#xff0c;属性也用双引号。 HTML规范&#xff1a;不…

Python对Protobuf进行序列化与反序列化

Python Protobuf1.了解Protobuf&#xff1a;1.1 Protobuf语法介绍&#xff1a;2. Python使用Protobuf&#xff1a;(windows平台上)1.了解Protobuf&#xff1a; 我们在使用protobuf之前首先要了解protobuf&#xff0c;那么什么是protobuf呢&#xff1f; 官方的解释是&#xff…

sql server management studio 查询的临时文件路径

C:\Users\你的登录名称\Documents\SQL Server Management Studio\Backup FilesC:\Users\你的登录名称\AppData\Local\Temp\sql server management studio 非正常关闭时自动保存的路径在sql server management studio 里创建的“新建查询”且没有手动保存的路径转载于:https://w…

K210 / Openmv实现 大津法/Otsu最大类间方差法 自适应二值化

目录源码效果平台&#xff1a;K210 固件版本&#xff1a;maixpy_v0.6.2_54_g897214100_openmv_kmodel_v4_with_ide_support.bin OpenMv库自带Otsu算法: 源码 # Otsu.py - By: Royic - 周三 9月 22 2021import sensor, imagesensor.reset() sensor.set_pixformat(sensor.GRAY…

第一章:OpenCV入门

第一章&#xff1a;OpenCV入门 OpenCV是一个开源的计算机视觉库&#xff0c;1999年有英特尔的Gary Bradski启动。OpenCV库由C和C语言编写&#xff0c;涵盖计算机视觉各个领域内的500多个函数&#xff0c;可以在多个操作系统上运行。它旨在提供一个简洁而又高效的接口&#xff…

【机器视觉学习笔记】双边滤波算法(C++)

目录源码滤波器主函数效果完整源码平台&#xff1a;Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文所用源码修改自双边滤波(bilateral filter)以及联合双边滤波&#xff08;joint bilateral filter&#xff09;—— flow_specter 源码 滤波器 // 双边滤波 // src…

第二章:图像处理基础

第二章&#xff1a;图像处理基础操作一、图像的基本表示方法&#xff1a;1. 二值图像&#xff1a;2. 灰度图像&#xff1a;3. 彩色图像&#xff1a;二、像素处理&#xff1a;1. 二值图像及灰度图像&#xff1a;2.彩色图像&#xff1a;3. 使用numpy.array访问像素&#xff1a;三…

《Head First设计模式》 读书笔记16 其余的模式(二) 蝇量 解释器 中介者

《Head First设计模式》 读书笔记16 其余的模式&#xff08;二&#xff09; 蝇量 解释器 中介者 蝇量&#xff08;Flyweight Pattern&#xff09; 如想让某个类的一个实例能用来提供许多“虚拟实例”&#xff0c;就使用蝇量模式&#xff08;Flyweight Pattern&#xff09; 。 例…