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”:

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

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

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

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

但我不排除有其它方法能够做到改动该前缀.

2.怎样内在iOS设备上看到iCloud中实际的文件名称

大家知道在iOS设备上,比方iPhone的iCloud设置里能够看到每一个使用iCloud的App,当中我们能够看到App在iCloud中保存的文件.

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

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

那么怎样让其显示特定的文件呢?

事实上非常easy,仅仅要将你的目录或是文件放到iCloud容器根目录下的Documents目录下就可以.

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

如上图所看到的,我在Documents目录中建立了MyString.txt文件和Tools目录.