标签: cloudkit

使用iCloud Apple ID匿名登录应用程序

根据CloudKit概述:

CloudKit还允许您的用户使用他们的iCloud Apple ID匿名登录您的应用,而无需共享他们的个人信息.

我在他们的文档中找不到关于此功能的任何其他内容.我已经有了一个带有我自己后端的应用程序,因此我不需要任何CloudKit提供的后端即服务功能,但我想利用用户登录iCloud帐户,与我们目前使用Facebook和Twitter的方式大致相同.

是否可以使用CloudKit,或者您是否还必须利用其BAAS功能才能利用登录?

iphone ios icloud ios8 cloudkit

7
推荐指数
1
解决办法
2265
查看次数

CloudKit API响应时间慢?

我已经制作了一个与CloudKit数据库交互的简单应用程序.基本上它只是一个日期选择器和两个按钮,第一个添加带有设置时间的新记录到数据库,第二个检索所有记录.除了所有操作都非常慢之外,这似乎工作正常.从saveRecord和performQuery获取响应大约需要10秒钟.我究竟做错了什么?以下是检索记录的代码.

@IBAction func retreiveButtonClick(sender: AnyObject) {
    self.labelOutlet.text = "Waiting..."

    func myHandler(results:[AnyObject]!, error:NSError!) {
        if let err = error {
            println("err: \(err.localizedDescription)")
        } else {
            self.labelOutlet.text = "Got \(results.count) results:"
            for record in results {
                let time = record.objectForKey("testTime") as NSDate
                self.labelOutlet.text = self.labelOutlet.text + "\n\(time.description)"
            }
        }
    }

    var query = CKQuery(recordType:"TestTable", predicate:NSPredicate(value:true))
    cloudDatabase.performQuery(query, inZoneWithID: nil, myHandler)   
}
Run Code Online (Sandbox Code Playgroud)

我正在我的iPhone 5上测试它,它连接到本地WiFi.我注意到保存的记录在调用完成处理程序之前很久就出现在CloudKit Dashboard中(我有足够的时间来检查),所以我怀疑我在代码中做错了.

swift cloudkit

7
推荐指数
1
解决办法
1072
查看次数

CloudKit通知

我可能会遗漏一些明显的东西.

如何创建一个CloudKit通知,其中包含有关您收到通知的CKRecord的详细信息?(即不仅仅是一个通用的"New Item Created!",而是一个带有记录标题的通知,例如"Jill and Jessica的生日派对!")

是否有正确的方法来为每个新记录更改创建一个带有新notification.alertBody的新订阅?这没有任何意义.

这会留下选项queryNotification.recordID从CloudKit(或我的本地商店)中提取数据并以某种方式将其添加到通知中?添加或更改已通知通知值的方法是什么?我错过了什么?

更新:Per Edwin的建议在这里是一个代码片段,但它不起作用.

let notification = CKNotificationInfo()
notification.alertBody = "Added: %@" as NSString
notification.alertLocalizationArgs = ["name"]
Run Code Online (Sandbox Code Playgroud)

apple-push-notifications ios cloudkit

7
推荐指数
1
解决办法
1556
查看次数

iOS Swift:使用CloudKit进行本地持久化

我正在使用CloudKit来获取/存储数据,但也希望有一个本地持久层.CloudKit是否提供任何类型的本地存储功能?或者我应该使用NSUserDefaults(NSKeyedArchiver/NSKeyedUnarchiver)?

ios icloud swift cloudkit

7
推荐指数
1
解决办法
3504
查看次数

CloudKit CKRecordZone

我一直在摆弄CloudKit一段时间了,但我找不到如何使用CKRecordZone的真实例子.我理解他们的能力(即分组记录,尤其是订阅记录),但是有人真的有使用它们的经验,并映射哪个概念?

谢谢

ios cloudkit ckrecordzone

7
推荐指数
3
解决办法
939
查看次数

将CloudKit RecordID保存到CoreData

我有一系列CloudKit记录,并希望将记录ID存储到核心数据中,因此当我再次查询云时,我不会记下相同的记录.我只是做一个不包含核心数据记录的NSpRedicate.

但是,如果出现错误,如何将记录ID保存到核心数据.认为这是一个类型问题.

现行代码:

 coreData.recordRecordID = self.cloudKitRecords[0].recordID as? String
Run Code Online (Sandbox Code Playgroud)

当前得到CKRecord作为String的错误总是失败,我并不感到惊讶.需要能够保存recordID然后从核心数据中获取recordID.

谢谢

core-data swift cloudkit

7
推荐指数
2
解决办法
1529
查看次数

从CloudKit导出数据

我正在与cloudkit仪表板交互并查看我的应用程序收集的数据.

如何从仪表板(data-> csv或json)导出所有数据,以便我可以对其进行一些分析?

谢谢!

cloudkit cloudkit-web-services

7
推荐指数
1
解决办法
601
查看次数

CloudKit查询中的UITableView部分

我有一个简单的CloudKit记录,它有两个字段,名称和等级.我希望能够对CloudKit进行查询,返回所有记录,但按等级分组.我知道我可以使用NSFetchResultsController执行此操作,但似乎无法使用CKQuery找到一种简单的方法.

获取的当前代码:

    func fetchTeachers(_ completion: @escaping (_ teachers: [CKRecord]?, _ error: NSError?) -> () ) {

    let query = CKQuery(recordType: TeacherType, predicate: NSPredicate(value: true))
    query.sortDescriptors = [NSSortDescriptor(key:"Grade",ascending:true)]

    publicDB.perform(query, inZoneWith: nil) { results, error in
        completion(results, error as NSError?)
    }
}
Run Code Online (Sandbox Code Playgroud)

ios swift cloudkit

7
推荐指数
1
解决办法
508
查看次数

通过CloudKit打开共享文档时出错

今年推出了CloudKit共享,我正在努力实现它.

我正在使用UICloudSharingController和我在成功处理程序中保存共享及其根记录.但是,当我共享链接(例如通过iMe​​ssage)并在另一台设备(不同的iCloud帐户,相同版本)上打开它时,它会显示以下错误:

无法打开"分享"

您需要更新版本APPNAME来打开它,但在App Store中找不到所需的版本.如果您不确定要使用哪个版本,请与所有者联系.

由于这是一个新的应用程序,它当然不在App Store中.我需要先测试共享(Chicken或egg?),所以任何人都知道如何测试CloudKit共享?

ios swift cloudkit ios10

7
推荐指数
1
解决办法
373
查看次数

如何使用swift以编程方式将pdf文档保存到iCloud Drive?

我的应用程序创建了一个pdf文件,我想使用swift 3编程方式将该pdf文档保存到iCloud Drive.

对于示例,我在这里使用了一个文本文件来保存在iCloud Drive中.

这是我的代码:

func copyDocumentsToiCloudDrive() {
    var error: NSError?
    let iCloudDocumentsURL = FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("myCloudTest")

    do{
        //is iCloud working?
        if  iCloudDocumentsURL != nil {
            //Create the Directory if it doesn't exist
            if (!FileManager.default.fileExists(atPath: iCloudDocumentsURL!.path, isDirectory: nil)) {
                //This gets skipped after initial run saying directory exists, but still don't see it on iCloud
                try FileManager.default.createDirectory(at: iCloudDocumentsURL!, withIntermediateDirectories: true, attributes: nil)
            }
        } else {
            print("iCloud is NOT working!")
            //  return
        }

        if …
Run Code Online (Sandbox Code Playgroud)

ios swift cloudkit icloud-drive swift3

7
推荐指数
1
解决办法
2965
查看次数