zoukankan      html  css  js  c++  java
  • iCloud 纪录

    iCloud的学习主要是Apple的官方文档+devform,常规的操作和流程请参见文档。

    这里纪录下iCloud开发中自己遇到的问题和需要注意的地方,有不对的地方,欢迎指正,也欢迎大家交流。

    2012-02-07 10:25:24

    1 支持iCLoud功能的应用首先要检测下iCloud是否可用,需要用到

    -[NSFileManager URLForUbiquityContainerIdentifier:];这个最好在次线程中做,否则有可能会阻塞主线程。

    这个苹果的文档最近也给出了例子:

    检测iCloud
    1 dispatch_async(dispatch_get_main_queue(), ^{
    2 if ([[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil])
    3 NSLog(@"iCloud is available.\n");
    4 else
    5 NSLog(@"iCloud is not available.\n");
    6 });

    2 文件上传到iCloud

    可以直接在iCloud下创建文件;

    在App沙盒内创建,然后使用 -[NSFileManager setUbiquitous:itemAtURL:destinationURL:error:]上传至iCloud;

    使用 -[UIDocument saveToURL:forSaveOperation:completionHandler:];

    3 NSFileCoordinator

    检测某个文件夹内容的更新时,其实检测的时文件夹内的任一文件的更新,包括子文件夹的文件。

    某一个文件下载完成后,presentedSubitemDidChangeAtURL:还会再调用一下,所以在做页面更新之前,要根据URL做一个判断。

    4 iCloud文件的下载

    文档上说有两种方法:

    1. 使用UIDocument的openWithCompletionHandler:方法
    2. NSFileManager的startDownloadingUbiquitousItemAtURL:方法。

    openWithCompletionHandler:方法需要在主线程中调用,因为这个函数本身执行的是异步操作,block里的内容是会在后台执行的。

    需要注意的是,调用了openWithCompletionHandler:后,如果想使用NSMetadataQuery去查询文件的进度,是查询不到的。

    相反调用startDownloadingUbiquitousItemAtURL:后,Query是可以查询到的

    5NSMetadataQuery

    query要在主线程中start,否则不会响应回调函数。

    或者有可能在次线程开始查询的时候,需要对runloop进行处理,这个没有仔细尝试

    6 -[NSURL  getResourceValue:forKey:error:]

    5.0以后新增了这个函数,可以查询文件是否已经下载,下载的进度。

    但是似乎函数不可用,比如查询NSURLUbiquitousItemPercentDownloadedKey的值,始终是零

    7 文件冲突处理

    用& 操作文件的状态,从而做出响应的动作。

    值得注意的是,如果文件状态是Closed,那么需要将此文件关闭

    8 iCloud的配置

    文档里有详细说明如何配置entitlement和App的bundle identifier.

    如果只配置一个container,在获取ubiquitousURL时可传参 nil。

    如果配置多个container,则需要指定container的字符串,规则是:“teamID”.container里的某一个值。

    2012-02-08 10:08:43

    先纪录这么多,还有其他一些问题需要注意,但是尚未弄清楚原因,待以后补充。



  • 相关阅读:
    爬虫前面
    常用模块学习
    函数、递归、内置函数
    迭代器、装饰器、软件开发规范
    python基础
    列表、字典、集合
    介绍、基本语法、流程控制
    python学习的第一个星期
    vmware使用nat连接配置
    Vue API 3模板语法 ,指令
  • 原文地址:https://www.cnblogs.com/scorpiozj/p/2340983.html
Copyright © 2011-2022 走看看