iCloud是一种面向消费者市场的云存储服务,苹果公司已经做了大量的工作让用户能够平滑过渡到iCloud,不过对开发者而言这意味着新的负担。

怎样使用iCloud?

你可以使用2种方式在你的应用中使用iCloud.如果你需要让你的应用在不同设备上共享一些配置信息,你可以使用iCloud的键值对存储,但是在空间使用上有64KB的大小限制。对于更大的数据,你需要使用iCloud的文件存储服务。

iCloud框架的目的是文件管理服务。至少到目前为止,苹果没提供标准的UI控件。

iCloud备份。

应用内的Document文件夹中的文件每天都会自动备份到iCloud上,正因为iOS5中引入了这种iCloud备份机制,苹果开始呼吁开发者不要把大量文件放到Document目录中,只有用户所产生,无法由应用再次生成的文件及数据才应该存入该目录。

其他的可以重新生成下载的数据则应该存储在应用的Library/Caches目录中,而临时文件则存到tmp目录中。

但是,Library/Cache和tmp目录都不能备份到云端,而且当空间不足时,设备就会清理掉里面的数据。所以如果你的应用中有些不需要备份的离线文件,并且又不希望存储空间短缺的时候 设备自动清理这些文件的话,你可以给这些文件设置一个"do not back up"的属性来告诉设备我们需要保留这些文件。

 #include <sys/xattr.h>

 - (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
const char* filePath = [[URL path] fileSystemRepresentation]; const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1; int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
return result == 0;
}

无论文件存在何目录,该属性都能起作用,包括Document目录。设备不会清除标识了该属性的文件,也不会将这些文件备份到用户的iCloud或iTunes中。所以,你的应用必须负责管理和定期清除这些文件。

"do not back up"属性是从iOS5.0.1引入的,此版本之前的系统都不支持该属性。

参考资料《iOS编程指南》

【读书笔记】iOS-iCloud介绍的更多相关文章

  1. 《The Linux Command Line》 读书笔记01 基本命令介绍

    <The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...

  2. 《一步一步写嵌入式操作系统》读书笔记1—Skyeye介绍、安装和HelloWorld

    2013-11-14 最近在看<一步一步写嵌入式操作系统>,感觉此书甚好,许多地方讲得很清楚.可操作性强,计划边读边实践边写笔记,希望能够逐步熟悉嵌入式操作系统底层的东西,最终剪裁出一套实 ...

  3. R语言实战读书笔记1—语言介绍

    第一章 语言介绍 1.1 典型的数据分析步骤 1.2 获取帮助 help.start() help("which") help.search("which") ...

  4. [读书笔记]iOS 7 UI设计 对比度

    好久没写随笔了,最近在读<iOS 7 byTutorials>,很不错,推荐给大家. 每一个好的程序员也都是一个设计师,不懂设计的程序员不是好的CTO.哈哈,开个小玩笑. iOS 7设计的 ...

  5. 读书笔记-iOS核心动画高级技巧

    如果不使用+imageNamed:,那么把整张图片绘制到CGContext可能是最佳的方式了. 这里我们利用了CALayer的KVC来存储和检索任意的值,将图层和索引打标签. 使用KVC打标签

  6. 深入探索Android热修复技术原理读书笔记 —— 热修复技术介绍

    1.1 什么是热修复 对于广大的移动开发者而言,发版更新是最为寻常不过的事了.然而,如果你 发现刚发出去的包有紧急的BUG需要修复,那你就必须需要经过下面这样的流程: 这就是传统的更新流程,步骤十分繁 ...

  7. 第一章-Flink介绍-《Fink原理、实战与性能优化》读书笔记

    Flink介绍-<Fink原理.实战与性能优化>读书笔记 1.1 Apache Flink是什么? 在当代数据量激增的时代,各种业务场景都有大量的业务数据产生,对于这些不断产生的数据应该如 ...

  8. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  9. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

随机推荐

  1. [git] 文件操作

    文件操作 1.  git  add 1.1 将未被git管理的文件添加到暂存区 一次可添加多个文件 文件夹,中间用空格隔开 git  add  文件/文件夹  文件/文件夹 再次执行 git  sta ...

  2. python网络编程初级

    网络编程的专利权应该属于Unix,各个平台(如windows.Linux等).各门语言(C.C++.Python.Java等)所实现的符合自身特性的语法都大同小异.在我看来,懂得了Unix的socke ...

  3. 【Object类、常用API】

    Object类 1.1 概述 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类 ...

  4. shell中的算数

    加法:let result=var1+var2result=$[$var1+var2]result=$(($var1+var2))result=`expr $var1 + $var2*` 加号前后有空 ...

  5. Python --代码风格检查 pep8

    pip3 install pycodestyle pycodestyle .. Pep8编码规范 https://blog.csdn.net/ratsniper/article/details/789 ...

  6. 04-TypeScript中的方法新功能(上)

    在TypeScript中,提供了一些函数的新功能,能够简化JavaScript中的一些比较复杂代码才能实现的一些能力. 在C#后端语言中,能够对方法传递的参数指定params关键字,也就是可以传递任意 ...

  7. GO入门——7. 并发

    1 并发 1.1 goroutine Goroutine 奉行通过通信来共享内存,而不是共享内存来通信 goroutine 只是由官方实现的超级"线程池"而已. 每个实例 4-5K ...

  8. [疑难杂症]__点击win10屏幕最上方的边界会莫名其妙打开Internet Explorer浏览器,不胜其烦(2次ps:已解决!!!).

    关于问题描述: 每次误点到屏幕上边界会莫名打卡Internet Explorer浏览器(一开始开以为是自带的Edge浏览器,后来在查找相关解决方法的时候才发现并不是同一款浏览器) 这个问题存在好久了, ...

  9. 火热的线上APP的源码分享,开箱即用

    这篇文章是写给iOS的程序员或产品经理的,同样,对于入门学习iOS开发的人,也是一个很好的实战演练,因为这里分享的是一个已经上架的.拿了源码就能正常运行起来的项目. 在介绍这个项目的源码分享之前,小编 ...

  10. C++学习总结(2)

    1.const指针 指向常量的指针变量,其一般形式为 "const 类型名 * 指针变量名 " . 如下: int a=12,b=15; const int *p=&a; ...