《iOS组件与框架——iOS SDK高级特性剖析》——第8章,第8.2节配置应用以支持iCloud
本节书摘来自异步社区《iOS组件与框架——iOS SDK高级特性剖析》一书中的第8章,第8.2节配置应用以支持iCloud,作者 【美】Kyle Richter , Joe Keeley,更多章节内容可以访问云栖社区“异步社区”公众号查看
8.2 配置应用以支持iCloud
iOS组件与框架——iOS SDK高级特性剖析
要配置应用以使用iCloud,以前必须执行多个步骤:给应用指定权限(Entitlement),并前往iOS供应配置文件门户(iOS Provisioning Portal)配置应用。iCloud功能只能在设备上测试,因此要让iCloud应用能够正确运行,必须先完成与供应配置文件相关的工作。Xcode 5推出后,这个过程极大地简化了,在Xcode 5中就能完成。
8.2.1 设置账户
为连接到Member Center并代表开发人员执行所需的iCloud配置工作,Xcode 5需要iOS开发人员信息。选择菜单Xcode>Preferences,再选择选项卡Accounts,如图8.1所示。
图8.1 Xcode 5的Accounts选项卡
要添加新账户,单击Accounts选项卡左下角的加号并选择Apple ID。输入账户凭证,再单击Add按钮。Xcode将验证凭证,并在凭证有效时收集账户信息。可单击View Details按钮,以查看账户凭证以及为账户配置的供应配置文件,如图8.2所示。
图8.2 Xcode 5的账户详情视图
8.2.2 启用iCloud功能
有了账户凭证后,Xcode 5便可使用这个账户给应用配置功能。它可根据需要设置App ID、权限和供应配置文件。为配置iCloud功能,在Xcode中选择Targets下的MyNotes,单击标签Capabilities,并找到iCloud部分。将iCloud开关设置为On,Xcode将自动为项目创建一个权限文件。选中复选框Use key-value store,为应用启用键值存储功能。Xcode将在Ubiquity Containers表中自动添加一项,其值为应用的束ID。就这个示例应用而言,这就够了;如果应用更复杂,需要与Mac OS X应用共享数据并支持多个无处不在的容器(ubiquity container),可在这里添加其他的名称。Xcode将向开发人员门户核实,确定为iCloud配置的App ID是否正确。如果不正确,Xcode将指出问题,如图8.3所示。如果您轻按按钮Fix Issue,Xcode将与开发人员门户联系,并修复所有的应用设置问题。
图8.3 配置iCloud功能
8.2.3 初始化iCloud
应用每次运行时,都必须调用NSFileManager的方法URLForUbiquityContainerIdentifier,以获取用于存储和同步文件的iCloud容器的URL。为此,在应用委托的方法application: didFinishLaunchingWithOptions:中,调用了访问setupiCloud。
首次调用时,方法URLForUbiquityContainerIdentifier将为应用设置目录;以后调用时,它将核实URL是否还在。如果为应用启用了iCloud,将返回一个有效的URL;如果禁用了iCloud,将返回nil。用户完全有可能对应用(甚至整个设备)禁用iCloud,导致iCloud不再可用。在实际应用中,应在iCloud不可用时通知用户,并将所有文件操作都重定向到本地的Documents目录。
需要注意的一个重要细节是,对URLForUbiquityContainer:的调用是在一个后台队列中进行的。这样做是因为这个方法返回的时间不确定。如果调用它时还没有任何iCloud数据,它将很快执行完毕并返回;然而,如果调用它时有多个文档需要下载,系统可能花一段时间来设置目录并使用云端数据填充文件。必须考虑这种延迟问题,以免影响用户界面的响应速度。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《iOS 8应用开发入门经典(第6版)》——第2章,第2.6节作业
本节书摘来自异步社区《iOS 8应用开发入门经典(第6版)》一书中的第2章,第2.6节作业,作者 【美】John Ray(约翰 雷),更多章节内容可以访问云栖社区“异步社区”公众号查看 2.6 作业iOS 8应用开发入门经典(第6版) 2.6.1 测验1.新建项目时,您将选择哪种编程语言? A.Swift。 B.Objective-C。 C.Object Swift。 D.C#。 2.您将使用哪种工具来创建用户界面? A.UI Builder。 B.iOS模拟器。 C.Interface Builder。 D.Swift User Tool。 3.在Xcode中,出现哪种编码问题时,您依然可以运行应用程序? A.错误。 B.故障。 C.警告。 D.注意。 4.如果要在代码中添加错误修复说明,可使用哪种标记? A.FIXME标记。 B.ERROR标记。 C.BUG标记。 D.METHOD标记。 5.Xcode编辑器的哪项功能在您输入方法时提供其信息? A.Genius Tool。 B.引用库。 C.代码大师(Code master)。 D.自动完成。 6.代码中的错误使用哪种符号表示? ...
- 下一篇
动画壁纸 LiveWallpaper 0.3
Ubuntu 系统本身的桌布功能已经非常不错了,基本上我们能想到的对桌布的需求也都可以实现。默认的几张壁纸也看得非常让我们轻松愉悦。 不过,用户的需求总是会不断的发展和出乎大多数的需求的,有很多人就希望能有动态的桌面。一般按我们的理解,系统本身就支持自动换桌布,而且你也可以弄个动画 gif 图来看看效果。不过就像很多特殊的主题一样,要在桌面上实现类似视频动画的效果,那就得借助一些其他的软件了,系统本身还做不到(要求 Ubuntu 系统本身就具有这个功能的话,也有点太牵强了,哈),下面的这个软件就可以实现一定的动画桌面的功能,而且我试了一下,效果还是非常不错的,不过性能嘛,就是对计算机需求还是有点需求的,就像你在玩全屏的 flash 网页游戏一样,如果计算机不够强劲,那么…… LiveWallpaper就是一个可以让你实现动画桌面的软件。目前版本为 0.3 版,大家如果用 Android 的手机系统的话,很可能已经使用过一款在手机上的更换桌布的名字非常一样的 LiveWallpaper 软件了。不过我们这个是在 Ubuntu 桌面系统上使用的,目前来说,我还不知道计算机桌面系统上的 Li...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Hadoop3单机部署,实现最简伪集群
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度