iOS中使用iCloud一些需要注意的地方(Xcode7.2)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)



在自己的App中如何使用iCloud有很多文章可以查阅,这里把本猫遇到的一些问题着重提一下,希望可以帮助到初次接触的童鞋们.

1.使用TeamId无效的解决

一些文章指出在调用NSFileManager的实例方法URLForUbiquityContainerIdentifier:时,可以传递一个组合的容器ID,也可以传递nil.如果传递nil则表示取得iCloud中第一个容器的URL(如果你有多个容器的话).

如果传递一个实际的容器ID则apple希望你按照TeamID.BundleID的组合方式生成该ID(这是某本书上说的).但实际操作下来,用此方法返回的容器URL总是为nil,TeamID是从开发者网站中的开发者ID描述页面获得的.

但是如果按上所述参数传递nil则可以获取到容器URL.

这时打开Xcode为你生成的.entitlements文件可以看到其中的TeamID不是所谓的TeamID,而仅仅是字符串”iCloud”:

所以我们在代码中将TeamID改为iCloud就可以了,另外我尝试直接在Xcode的Capabilities中修改其前缀:

但是编译时提示出错,大概意思是iCloud前缀必须以iCloud开头.

但我不排除有其他方法可以做到修改该前缀.

2.如何内在iOS设备上看到iCloud中实际的文件名

大家知道在iOS设备上,比如iPhone的iCloud设置里可以看到每个使用iCloud的App,其中我们可以看到App在iCloud中保存的文件.

但是有些童鞋可能发现自己写的App在iCloud中看不到对应的文件名,而只是显示一个笼统的大小:

那么如何让其显示特定的文件呢?

其实很简单,只要将你的文件夹或是文件放到iCloud容器根目录下的Documents文件夹下即可.

如上图所示,我在Documents文件夹中建立了MyString.txt文件和Tools文件夹.

时间: 2024-08-17 17:27:40

iOS中使用iCloud一些需要注意的地方(Xcode7.2)的相关文章

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

iCloud文档存储编程相对键值数据存储而言比较复杂,涉及到自定义文档类.获得iCloud文档目录.查找Ubiquity容器中的文档.保存文档和解决文档冲突等内容. 实例:iCloud文档存储编程设计 实例介绍一下iCloud文档存储编程过程,画面中有一个文本框和一个按钮控件,在设备1输入内容,点击"保存数据"按钮,将数据保存iCloud服务器.右图是设备2画面,过几秒钟后设备2上会读取iCloud服务器端数据,并显示在文本框中. 配置Xcode工程 编写iCloud文档存储编应用程序

ios-需要在IOS中设置延迟功能

问题描述 需要在IOS中设置延迟功能 需要一个延时器,进行23秒的延迟然后执行函数.应该怎么实现?用不用NSTimer? 解决方案 performSelector: withObject: afterDelay: 解决方案二: 简单点的话,使用performSelector: withObject: afterDelay: 方法 [self performSelector:@selector(delayMethod:) withObject:nil afterDelay:23];

error-请教iOS中CMPedometer的用法

问题描述 请教iOS中CMPedometer的用法 10C #import @implementation FirstViewController (void)viewDidLoad { [super viewDidLoad]; [CMPedometer isStepCountingAvailable]; CMPedometer *pedonmeter = [[CMPedometer alloc] init]; [pedonmeter startPedometerUpdatesFromDate:

IOS中KVC与KVO的应用解析

IOS中KVC与KVO的应用解析 一.NSKeyValueCoding(KVC) 1.从一个小例子引入 KVC键值编码是Object-C为我们提供的一种对成员变量赋值的方法.在探讨其方法之前,我们先来看一个小例子: 首先,创建一个数据模型model类: ? 1 2 3 4 5 6 7 8 //.h文件 #import <Foundation/Foundation.h> @interface Model : NSObject {     @public//将成员变量设置为公有的 以便其他文件有访

IOS中JSON数据的解析

IOS中JSON数据解析 官方为我们提供的解析JSON数据的类是NSJSONSerialization,首先我们先来看下这个类的几个方法: + (BOOL)isValidJSONObject:(id)obj; 判断一个数据对象是否可以转化为JSON数据 + (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error; 将JSON数据写为NSData数据,其中opt参数

iOS中read it later阅读界面隐性导航设计

文章描述:iOS中read it later软件的阅读界面. 移动设备阅读类软件最重要的特性之一就是尽可能的增大阅读面积,为此,就必须尽可能的让屏幕中的导航占到最小,甚至隐藏,手机浏览器也基本属于阅读类软件,最近流行的海豚浏览器甚至将电脑中的"鼠标手势"引入到手机浏览器中. 什么是隐性导航 下图是iOS中read it later软件的阅读界面,除了最上方的状态栏,阅读区域占满了整个屏幕,没有任何诸如"返回"."关闭"的导航按钮,实际这些按钮是隐

iOS中设置应用程序图标和引导画面

一个好的应用程序图标,不仅会给用户留下良好的第一印象,而且可以帮助用 户在茫茫多的桌面图标中,快速发现你的应用程序.本文将介绍如何把已经设计 好的图标以及启动图片添加到我们的应用程序. 大纲 图标的规格及说明: 启动图片规格及说明: 添加素材演练: 设定启动图片显示时间. 一. 图标规格及说明 iOS中图标的名称及规格见下表: 三. 添加素材演练 在以前版本的Xcode中,添加图标和启动图片相对有些麻烦,而且苹果默认给 图标增加了高光效果,但是对于美工来讲,这种高光效果往往达不到预期效果. 在X

IOS中UITabBar的常用设置

UITabBar十分常用,它能实现多个页面的快速切换,而且看起来简单实用. 假设我这有多个 已经初始化好的viewController,然后需要将它们加入到TabBarController中,并把其设置为根视图 NSArray *views = [[NSArray alloc] initWithObjects:test, time, test1, test2, test3, test4, nil]; UITabBarController *tbc = [[UITabBarController a

iOS中SQLite数据库使用详解

使用SQLite数据库 创建数据库 创建数据库过程需要3个步骤: 1.使用sqlite3_open函数打开数据库: 2.使用sqlite3_exec函数执行Create Table语句,创建数据库表: 3.使用sqlite3_close函数释放资源. 这个过程中使用了3个SQLite3函数,它们都是纯C语言函数,通过Objective-C去调用C函数当然不是什么问题,但是也要注意Objective-C数据类型与C数据类型兼容性问题. 下面我们使用SQLite技术实现备忘录案例,与属性列表文件实现