CloudKit
のオプションを使用しDeleteSelf
た経験のある人はいますCKReference
か? ドキュメントから得たものは次のとおりです。
自己削除
参照レコードの削除アクション。レコードを削除すると、そのレコードを指す CKReference オブジェクトを含むすべてのレコードも削除されます。追加のレコードを削除すると、さらに多くのレコードがカスケード削除される可能性があります。削除はデフォルト ゾーンでは非同期に行われ、カスタム ゾーンでは即時に行われます。
CKReference
だから私はこれをテストしてきましたCloudKit Dashboard
. アプリでそれを行うときはいつでも、次のように参照を作成します。
let reference:CKReference = CKReference(recordID: savedFriend.friendID, action: CKReferenceAction.DeleteSelf)
ダッシュボードでチェックされたオプションが表示されているため、それ自体を削除するように割り当てられていることがわかります。
ダッシュボードを使用して参照されているレコードを手動で削除するか、プログラムで削除するようにアプリを設定すると、レコードは消えますが、参照は決して削除されないため、何か間違ったことをしているに違いありません。たぶん待つべきだと思いましたが、最終的にはそうなるでしょうが、数時間後、それ自体が削除されたはずのようにチェックオフされたままです. これが機能すると想定してコードの一部を設計したので、ちょっとイライラします。今では、CKRecord
もう存在しない を見つけようとしてリソースを浪費しているアプリを作成できます。これに頼ってはいけませんか?私が得ることができる助けやアドバイスに感謝します。
更新 ~ 2016 年 4 月 7 日
私は銃を飛ばしてここに戻ってきて、問題が解決したという更新を投稿しました. 問題が再発しないとは完全に確信していなかったので、昨夜、安心を求めました. データベース全体でそれらを参照するために、 5 つの異なるオブジェクトをCKRecords
作成し、さまざまな異なるオブジェクトを作成しました。CKReference
次にCKReferenceAction.DeleteSelf
、各参照にオプションを設定しました (2 つはダッシュボードから手動で試し、残りの 3 つはプログラムで行いました)。とにかく、私は数分待ってから、参照されたレコードを削除しました... 10分後、参照はすべてまだ存在していました. 私はさらに5〜10分待ったが、彼らはまだそこにいたので、朝までには絶対にいなくなっているはずだと思って寝ましたよね?違う!12時間後、CKReference
エントリはまだそこにあります参照されたレコードはまだなくなっています。私は間違いなく頭を悩ませています。まるでバグのようですCloudKit
。また、ダッシュボードに奇妙な動作が見られたことにも言及しておく必要があります。過去 4 日間ほど、左下隅に一貫して「開発データの再インデックス化」と表示されていました。例を次に示します。
それがこの問題を引き起こしている可能性はありますか? この問題に精通していて、これを解決する方法を知っている人はいますか? 任意の提案をいただければ幸いです。Appleにバグレポートを提出しました。