bhz*_*zag 8 ios swift cloudkit
所以我想每天擦除特定记录类型的每条记录.所以基本上,我希望在凌晨12点擦除数据,以便第二天新鲜.我该怎么做呢?这是我可以在CloudKit仪表板中设置的,还是我必须以编程方式设置它?
Edw*_*eer 10
如果您需要删除多个记录,则从仪表板中删除记录非常有用.
最好的解决方法是创建一个单独的recordType,每天包含一条记录.然后在当天要删除的记录中设置对该特定日记录的CKReference并将其操作设置为CKReferenceAction.DeleteSelf
之后,您只需删除日记录,所有相关记录将被删除.可以从仪表板轻松删除一条记录,也可以在应用程序中创建功能,也可以为管理操作创建第二个应用程序.
func deleteAllRecords()
{
let publicDatabase: CKDatabase = CKContainer.defaultContainer().publicCloudDatabase
// fetch records from iCloud, get their recordID and then delete them
var recordIDsArray: [CKRecordID] = []
let operation = CKModifyRecordsOperation(recordsToSave: nil, recordIDsToDelete: recordIDsArray)
operation.modifyRecordsCompletionBlock = {
(savedRecords: [CKRecord]?, deletedRecordIDs: [CKRecordID]?, error: NSError?) in
print("deleted all records")
}
publicDatabase.addOperation(operation)
}
Run Code Online (Sandbox Code Playgroud)
尝试这样的事情:
let publicDb = CKContainer.defaultContainer().publicCloudDatabase
let query = CKQuery(recordType: "RECORD TYPE", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil))
publicDb.performQuery(query, inZoneWithID: nil) { (records, error) in
if error == nil {
for record in records! {
publicDb.deleteRecordWithID(record.recordID, completionHandler: { (recordId, error) in
if error == nil {
//Record deleted
}
})
}
}
}
Run Code Online (Sandbox Code Playgroud)
"RECORD TYPE"应该是您的记录类型.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
4080 次 |
| 最近记录: |