1

OUPレコード タイプがあり、レコード タイプ.DeleteSelfへの参照がありOUます。

無条件のサブスクリプションを設定しただけの場合、それは機能します:

let subscriptionOUP = CKSubscription(recordType: "OUP", predicate:NSPredicate(value: true), subscriptionID: "oup", options: .FiresOnRecordUpdate)

しかし、条件付きの方法ではありません:

let ekf = "oup-\(ou.recordID)"
let pr = NSPredicate(format: "ou = %@", CKReference(recordID: CKRecordID(recordName: organizationUser.recordID), action: .DeleteSelf))
let subscriptionOUP = CKSubscription(recordType: "OUP", predicate:pr, subscriptionID: ekf, options: .FiresOnRecordUpdate)
println("\(pr) \(ekf)")

端末コンテンツ:

ou == <CKReference: 0x1558d3d0;51D56239-D68C-4E12-BD23-E4DCEF5721B7:(_defaultZone:__defaultOwner__)> 

oup-51D56239-D68C-4E12-BD23-E4DCEF5721B7

述語またはサブスクリプション ID の問題は何ですか?

4

1 に答える 1

0

subscriptionID文字列が長すぎます。

このように減らすと、うまくいきます:

let ekf = "oup-\((organizationUser.recordID as NSString).substringToIndex(7))"
于 2014-08-04T06:42:20.197 に答える