问题标签 [ckreference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
447 浏览

cloudkit - CKReferences 未出现在 CloudKit 仪表板中

为什么我无法在 CloudKit 仪表板中看到引用?

我这样设置CKReferences:

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
1155 浏览

ios - 在 CloudKit 中获取 CKReferences 的最佳实践方法是什么?

在我的 CloudKit 设置中,我有一个Person记录类型,每个人都有一个Friend属于CKReference另一个Person对象的属性。

我获取所有Person CKRecord的 s。我将这些人列在一张表中,并列出他们的朋友。目前,我只是CKReference使用 . 并单独获取每个朋友recordID

这是我能看到的唯一方法,但最佳实践是什么?特别是因为我可能会吸引大量的朋友。单独获取所有这些对象似乎违反直觉。

我想知道是否有类似 CoreData 的方法,您可以在其中选择在主提取中提取相关对象?例如,当我获取 a 时Person,它也会自动获取朋友。

0 投票
1 回答
3406 浏览

swift - Saving An Array Of Objects In CloudKit

I'm confused about how to best save an object that contains an array of other objects in CloudKit.

Say I have a todo list app, which has different collections of items. How would I go about saving/fetching a whole collection of items?

Would I have a Record type of Collection, which would have a String Attribute called "Name", and then a Reference List Attribute called "Items"?

I know that the Record type of Item needs to have a Reference Attribute called "Collection", because of how CloudKit references from a child object to its parent.

I have managed to save a Collection without any instances of Item with the following code

The other option is when saving a Collection, to loop through all instances of Item and also save those individually, their Reference Attribute to Collection making the connection on the CloudKit side, but this seems like way too many network calls.

0 投票
1 回答
1339 浏览

swift - 如何使用 CloudKit 仪表板创建参考属性

我使用 CloudKit Dashboard 创建了一条记录,因此记录不是以编程方式创建的。在“默认区域,模型数据”下(抱歉,我需要至少 10 个声望才能发布图像.. :/)所以这是文本版本。

“EventRef0 975f5715-3ccd-4c5f ... DeleteSelf 参考”

所以我在我创建的记录中有 3 个这样的参考字段。现在在“默认区域,事件”下。其中一条记录具有以下标题。

编号:975f5715-3ccd-4c5f...

创建者:2015 年 1 月 20 日 19:00 创建者:_ac6625... 修改者:修改者:

我的问题如下:

1) 我在 EventRef0 的“参考”字段中放了什么?我目前拥有的事件 ID 还是其他?

2) 这是创建多个引用的正确方法吗,即为我要引用的 3 个事件创建 3 个引用?

3) 当我想获取事件时,我可以在一次调用数组中获取所有 CKReference,然后获取索引该数组的事件数据,还是必须单独调用才能获取每个事件?我希望有一种方法可以通过键入“引用”属性来获取数组中的所有引用。不确定这是否可能。最好是斯威夫特。

任何帮助将不胜感激。谢谢。

0 投票
1 回答
622 浏览

swift - cloudkit 输入用户 ID 作为新记录的参考(在代码中)

我正在设置一个用户可以在其中创建记录的应用程序。假设他/她是聊天室的所有者。因此聊天室记录中有一个名为“admin”的属性。该属性接受一个引用,即所有者的 ID。

这是我尝试过的:

当我如上所述传递 iDString 并创建记录(房间)时,它的管理引用为空。我是否将 iDString 转换为字符串。

当我直接传递 userRecordID 时,我收到一个错误:“CKRecordID”与“CKRecordValue”不同

我一直在到处寻找,但找不到更多关于此的信息。

任何帮助将不胜感激。感谢你们!

0 投票
1 回答
150 浏览

swift - 无法分配用户 ID 作为参考

我正在尝试为记录分配几个不同的属性。

日期和名称工作正常。Avatar 是对另一条记录的引用,也可以正常工作。但后来我尝试为用户分配一个引用,我得到了猛击屏幕的瞬间。这是我的代码:

当我保存 daMainUser 并查看苹果仪表板时,我看到“头像”引用已成功保存,但没有“ownerOfThat”。这是我从控制台得到的:

这让我相信 userID 和来自另一条记录的 ID 不是同一种 ID。但我不知道为什么以及该怎么做。先感谢您

0 投票
0 回答
1071 浏览

objective-c - CloudKit 关系 CKReference 设置和查询。

我允许用户保存位置。它保存在 cloudKit 中,我可以成功获取所有位置。对于保存的每个位置,都有一个创建它的记录“创建者:IDXXX”。如何提取创建它的单个用户保存的所有位置?

在 CloudKit 中,我有 2 种记录类型,位置和用户。当一个位置被保存时,它被保存为一个位置,我使用 CKReference 将用户记录 ID 的引用添加到位置中的一个字段,该字段我标记为属性名称的“owningList”,属性类型为“Reference”。当保存新位置并获取新保存位置的 CKRecord 时,将调用下面的此方法。

然后我尝试使用指定 CKReference 的谓词来获取所有位置,CKReference 是用户的记录 ID 和字段名称“owningList”,这不会返回任何结果。我尝试了其他方法但没有成功。我对此很陌生,任何帮助或澄清将不胜感激。

0 投票
1 回答
791 浏览

ios - CloudKit - 在 CKRecord 中存储多个 CKReference

在我的应用程序中,我有一个记录类型 (UserActivity),它只存储用户想要保存到他们的个人资料中的图像。此记录类型仅包含一个属性 - 对另一个记录类型(例如,RecordTypeA)的 CKReference。它完美地工作......我能够通过引用存储和检索数据以构建图像并在屏幕上适当地显示它。但是,我刚刚意识到我需要向 UserActivity 记录类型添加第二个属性,这将是对不同记录类型(称为 RecordTypeB)的 CKReference。记录类型 B 是需要单独识别的第二种图像。因此,UserActivity 中的每一行现在将有 2 个可能的 CKReferences 中的 1 个,但不是两者都有。

我可以毫无问题地保存新的 RecordTypeB 引用,但结果有几个问题。首先,当我保存它时,无论是通过代码还是 CKDashboard,记录现在将标题显示为“No Name”,因为 RecordTypeA 的属性没有任何内容。最初,记录名称将是 ref:followed-by-recordid。如果 UA 记录具有对 RecordTypeA 的引用,则它的工作方式与最初一样。那么有没有办法让它只为 RecordTypeB 参考创建记录名称?既然我有第二个属性,是否有可能将其更改为 CKReference 列表?其次,更重要的是,当我检索 UserActivity 记录时,如何判断给定记录是否包含对 RecordTypeA 或 RecordTypeB 的引用?有没有类似于 isKindOfClass 方法的方法?在这种情况下,该方法只是显示它是一个 CKReference,而不是它所引用的记录类型。如果 CKReference List 是合适的解决方案,也许第二个问题会自动解决?提前感谢您的指导!

0 投票
1 回答
2180 浏览

ios - 使用 Swift 在 CloudKit 上进行 CKReference

我有一个 RecordTypeAccount和另一个Friends。因为Account我正在设置RecordID每条记录的创建时间,并且我有一列Name

对于朋友,我有两列,MeMyFriendMyFriend是一个包含RecordID帐户的参考。

如何检索我朋友的帐户名称?我需要查询 Friends 以获取我的所有记录,Me然后RecordID我需要使用这些记录的引用从 Account 表中获取 Names。

我尝试了以下方法,但没有得到任何结果:

0 投票
2 回答
986 浏览

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

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

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

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

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