美文网首页ios 开发常用iOSSwift&Objective-C
CloudKit - 免费强大的云服务

CloudKit - 免费强大的云服务

作者: SwiftCafe | 来源:发表于2015-11-15 21:30 被阅读1318次

    iCloud 相信大家已经不陌生了,它可以为用户存储自己的数据,并且在多个设备间同步。而今天我们介绍的 CloudKit 是另外一个强大的服务,它是一个云存储服务,我们开发的 APP 可以用它作为服务端数据存储,这样我们就不必自己管理服务端的性能这类问题了,并且它是完全免费的。

    为何需要云服务

    作为一个 APP 开发者,相信大家开发 APP 的时候或多或少都会需要服务端来支持,无论是新闻 APP 的新闻内容,又或是社交 APP 的服务端支持。而关于服务端的开发,又是一个很大的工程,不单单是简单提供数据这么简单,随着 APP 用户量的增长,我们还要处理诸如服务端性能,以及稳定性这类非功能性的问题,这对于小的开发团队来说,无疑是一个很大的投入。

    为了解决这个问题,出现了很多第三方云服务,比如 leancloud.cn。这些云端服务,将诸如服务端性能,稳定性,以及日常维护这些非功能性的工作很好的处理了起来,这样我们开发者就可以专注于我们的 APP 开发,而不用去管理这些繁杂的服务端细节了。

    除了这些第三方的云服务,苹果自家也推出了自己的云服务 CloudKit, 它的好处是和 iOS 系统无缝结合,并且官方提供了 API,集成这个云服务非常的容易。并且苹果提供服务端的整体运营,我们不必再进行处理诸如性能,安全性等这些问题。

    下面我们就来看看如何使用 CloudKit 吧。

    打开 CloudKit

    为应用开启 CloudKit 支持非常的容易,只需要在 XCode 中的 Capabilities 选项卡中找到 iCloud 选项,并打开开关:

    然后选中 CloudKit 复选框,就完成 CloudKit 的设置了。设置完成后,我们点击 CloudKit Dashboard 按钮,可以打开 CloudKit 管理后台:

    从开启到进入后台管理,只需要点几个按钮,中途输入以下开发者账号,就完成了,非常的简便。接下来咱们了解一下后台管理功能。

    在 Scheme 分类中,我们可以进行表结构的设置,比如我们创建一个实体叫做 Book:

    实体创建完成后,我们就可以在代码中操作这个数据实体了。比如我们可以这样创建一个 Book 实例。

    引入 CloudKit 库:

    import CloudKit
    

    打开数据库连接:

    let publicDB = CKContainer.defaultContainer().publicCloudDatabase
    

    创建记录:

    let bookID = CKRecordID(recordName: "Book 1")
    let book = CKRecord(recordType: "Book", recordID: bookID)
    book.setValue("Swift", forKey: "name")
    book.setValue("Cook", forKey: "author")
    

    保存记录:

    publicDB.saveRecord(book) { savedRecord , error in
    
        if error == nil {
    
            print("success")
    
        }else {
    
            print(error)
    
        }
    
    }
    

    这样我们的数据库操作就完成了,CloudKit 会帮我们将数据记录上传到云服务器中,我们在 CloudKit 管理界面中也可以看到这条记录:

    不需要配置任何服务端,也不需要我们自己进行数据库管理,云服务的集成就这样完成了。怎么样非常的方便吧。

    读取 CloudKit 数据

    我们可以添加数据,还可以查询数据,接下来我们还是用 CloudKit 来读取我们刚才插入的内容:

    let query = CKQuery(recordType: "Book", predicate: NSPredicate(value: true))
    
    publicDB.performQuery(query, inZoneWithID: nil) { (records: [CKRecord]?, error) -> Void in
    
        for record in records! {
    
            print(record.valueForKey("name")!)
    
        }
    
    }
    

    我们这里使用 publicDBperformQuery 方法,传入一个 Query 对象,指定了我们的查询条件。

    结语

    通过 CloudKit,我们非常简单的就实现了整套的服务端和客户端交互的流程,而且为我们节省了很多时间。现在我们要做的只是将数据模型定义好,然后调用 CloudKit API 进行数据存取操作即可。完全不需要处理服务端配置等这些繁琐的工作了。

    更多精彩内容可关注微信公众号:
    swift-cafe

    相关文章

      网友评论

      本文标题:CloudKit - 免费强大的云服务

      本文链接:https://www.haomeiwen.com/subject/hzekhttx.html