一、从iOS8开始,苹果为开发者提供了ClouKit,可以把我们的应用程序和用户数据存储在iCloud上,用于代替后台服务器,开发移动代码即可。

二、设置

(1)需要一个开发者账号,并且设置一个bundle id 包含 iCloud功能

(2)设置xcode:

(3)设置模拟器,setting-iCloud 登录账号(可以是非开发者账号)

三、控制器增删改查 Swift 代码:

import UIKit
import CloudKit

//创建一条记录的ID并指定一个唯一的名字,
let  artworkRecordID = CKRecordID.init(recordName: "Cats")
//        //创建一个记录对象
let artworkRecord = CKRecord.init(recordType: "CatsTest", recordID:artworkRecordID)
//1、创建一个容器(使用默认容器)
let myContainer = CKContainer.defaultContainer()
//2、创建数据库
let publicDatabase = myContainer.publicCloudDatabase

class ViewController: UIViewController {

override func viewDidLoad() {
        super.viewDidLoad()
        
        //添加数据
        artworkRecord["job"] = "iOS开发2"
        artworkRecord["name"] = "聂小波2"
        artworkRecord["address"] = "上海2"
        
        self.fetchRecordData()
        
    }
    
     func creatRecord() {
        //将记录保存在数据库
        publicDatabase.saveRecord(artworkRecord) { (artworkRecord, error) in
            if (error != nil) {
                print("creatRecord failure!")
            } else {
                print("creatRecord success!")
            }
        }

}

func fetchRecordData() {
        //在代码中获取我们保存好的内容
        publicDatabase.fetchRecordWithID(artworkRecordID) { (artworkRecord, error) in
            if (error != nil) {
                print("selectData failure!")
            } else {
                print("selectData success!")
                let job = artworkRecord!["job"];
                let names = artworkRecord!["name"];
                let address = artworkRecord!["address"];
                
                print("查询信息:" ,"job:",job ,"names:", names ,"address:" , address)
            }
            
        }

}
    
    func unpdateData() {
        //修改数据
        artworkRecord["name"] = "聂小波3"
        //将记录保存在数据库
        publicDatabase.saveRecord(artworkRecord) { (artworkRecord, error) in
            if (error != nil) {
                print("unpdateData failure!")
            } else {
                print("unpdateData success!")
            }
        }
    }

func deleteRecordData() {
        //将记录保存在数据库
        publicDatabase.deleteRecordWithID(artworkRecordID) { (artworkRecord, error) in
            if (error != nil) {
                print("deleteRecord failure!")
            } else {
                print("deleteRecord success!")
            }
        }
    }

}

四、查看实时数据

进入苹果开发者iCloud数据库网页地址:https://icloud.developer.apple.com/dashboard/ 登录开发者账号

iOS云存储:CloudKit 基本使用教程 增删改查(Swift)的更多相关文章

  1. IOS之分析网易新闻存储数据(CoreData的使用,增删改查)

    用过网易新闻客户端的朋友们都知道,获取新闻列表时有的时候他会请求网络有时候不会,查看某条新闻的时候再返回会标注已经查看的效果,接下来分析一下是如何实现的. 首先: 1.网易新闻用CoreData存储了 ...

  2. iOS CoreData (一) 增删改查

    代码地址如下:http://www.demodashi.com/demo/11041.html Core Data是iOS5之后才出现的一个框架,本质上是对SQLite的一个封装,它提供了对象-关系映 ...

  3. sqlHelper做增删改查,SQL注入处理,存储值,cookie,session

    一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...

  4. 微软Connect教程系列--自动生成增删改查页面工具介绍(二)

    本章课程描述了vs2015的三个特点,其中主要将描述在vs2015下面,使用命令自动生成增删改查界面,具体如下: 1.web.config文件不在存在,用config.json替代,以适应支撑vs的插 ...

  5. primefaces4.0基本教程以及增删改查

    最近试着用了用primefaces4.0,准备写一个基本的增删改查以及分页程序,但在写的过程中发现了很多问题,本想通过百度.谷歌解决,但无奈中文资料非常少,笔者在坑中不停的打滚,终于完成了一个有着基本 ...

  6. iOS CoreData 增删改查详解

    最近在学习CoreData, 因为项目开发中需要,特意学习和整理了一下,整理出来方便以后使用和同行借鉴.目前开发使用的Swift语言开发的项目.所以整理出来的是Swift版本,OC我就放弃了. 虽然S ...

  7. SQLite 入门教程(四)增删改查,有讲究 (转)

    转于: SQLite 入门教程(四)增删改查,有讲究 一.插入数据 INSERT INTO 表(列...) VALUES(值...) 根据前面几篇的内容,我们可以很轻送的创建一个数据表,并向其中插入一 ...

  8. IOS开发中使用CNContact\CNMutableContact 对通讯录增删改查

    IOS开发中使用CNContact\CNMutableContact 对通讯录增删改查 首先当然是把CNcontact包含在工程中: @import Contacts; 1.下面是增加联系人的程序段: ...

  9. Asp.Net WebApi学习教程之增删改查

    webapi简介 在asp.net中,创建一个HTTP服务,有很多方案,以前用ashx,一般处理程序(HttpHandler),现在可以用webapi 微软的web api是在vs2012上的mvc4 ...

随机推荐

  1. 八、Docker+RabbitMQ

    原文:八.Docker+RabbitMQ 一.下载镜像 docker pull rabbitmq:management 二.运行 docker run -d --name rabbitmq -e TZ ...

  2. 设计模式六大原则(一):单一职责原则(Single Responsibility Principle)

    单一职责(SRP)定义: 不要存在多于一个导致类变更的原因,通俗的说,即一个类只负责一项职责. 问题由来: 类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需要修改类T时,有可 ...

  3. oracle 归档模式和非归档模式

    http://www.cnblogs.com/gaojian/p/3611641.html http://blog.csdn.net/yong5241200/article/details/39451 ...

  4. 字串乱序 PHP&JS

    <?php /** * 字串乱序 PHP&JS * * php 中把字串乱序后输出给客户机的 JAVASCRIPT , JAVASCRIPT 中恢复 * 在指定长度提取一个字符,并把这一 ...

  5. eclipse-ADT安装失败经验

    今天下载了一个eclipse,结果ADT死活安装不成功,网上试了很多的方法,最后还是失败了.最后听从同事的建议,直接使用adt-bundle了.这个环境基本上都是配置好的. 下载地址 http://w ...

  6. bootstrap课程9 bootstrap如何实现动画加载进度条的效果

    bootstrap课程9 bootstrap如何实现动画加载进度条的效果 一.总结 一句话总结:在bootstrap进度条的基础上添加js(定时器),动态的改变进度条即可.很简单的. 1.路径导航是什 ...

  7. R语言-方差分析

    方差分析指的是不同变量之间互相影响从而导致结果的变化 1.单因素方差分析: 案例:50名患者接受降低胆固醇治疗的药物,其中三种治疗条件使用药物相同(20mg一天一次,10mg一天两次,5mg一天四次) ...

  8. (转)oracle常用的数据字典

    一.oracle数据字典主要由以下几种视图构成: .user视图 以user_为前缀,用来记录用户对象的信息 .all视图 以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息 .dba视图 ...

  9. Mybatis的使用中的一些不太注意的技巧

    以下就总结一下Mybatis的使用中的一些不太注意的技巧,算是Mybatis的总结笔 1.插入时主键返回 我们向数据库插入一条记录是,使用Mybatis的<insert>是无法返回插入的主 ...

  10. 【例题 6-17 UVa 10562】Undraw the Trees

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 模拟+递归 [代码] #include <bits/stdc++.h> using namespace std; con ...