小编Ren*_*son的帖子

CKReference 的 CloudKit 订阅通知未按预期工作

我正在尝试为包含用户的 CKReference 字段的记录设置 CKSubscription。但是无论何时创建记录,它都会忽略复合谓词的这一部分,并且通知永远不会出现。在 CKSubscription 的谓词中使用 CKReference 有什么不同吗?我进入仪表板以在我自己的用户记录 ID 下输入新记录(在模拟器中运行另一个用户时),因为我相信我读到如果记录来自设备,它将不会收到通知。非常感谢任何见解,因为我已经坚持了一个星期,并且无法在网上找到任何特定于此的内容。我能够获得真正的类型谓词通知,所以我认为我的基本设置没问题。

在仪表板中,我看到两个测试用户都有一个通用订阅,但没有看到任一用户的任何特定记录 ID(这有关系吗?):

Notifications.read (equals string)
Notifications.user (equals reference)
Run Code Online (Sandbox Code Playgroud)

当我执行 fetchAllSubscriptionsWithCompletionHandler 方法时,它会在调试器中将此设备的当前用户的特定记录 ID 显示为 CKReference。所以我不知道为什么它不起作用。

这是我首先创建 CKReference 然后将其用于谓词的代码:

var recordIDString = CKRecordID(recordName: "_a86dac8ee05f8c6ab35746bf9663d7b8")
// I normally store this string in the NSUserDefaults.

    let userRef = CKReference(recordID: recordIDString, action: .DeleteSelf)
     let predicate = NSPredicate(format: "user = %@", userRef)
   let predicateTwo = NSPredicate(format: "read = %@", "")
// I want the read field to be empty, which tells me user has not read …
Run Code Online (Sandbox Code Playgroud)

ios swift cloudkit cksubscription ckreference

3
推荐指数
1
解决办法
960
查看次数

标签 统计

ckreference ×1

cksubscription ×1

cloudkit ×1

ios ×1

swift ×1