Vì vậy, tôi muốn xóa mọi bản ghi cho một loại bản ghi cụ thể mỗi ngày. Vì vậy, về cơ bản, tôi muốn dữ liệu được xóa lúc 12:00 sáng để nó sẽ được làm mới cho ngày hôm sau. Tôi sẽ đi đâu để tới đó? Đây có phải là thứ mà tôi có thể thiết lập trong bảng điều khiển CloudKit hay tôi sẽ phải thiết lập lập trình này?Xóa tất cả bản ghi CloudKit mỗi ngày từ một loại bản ghi cụ thể
7
A
Trả lời
9
Xóa bản ghi khỏi trang tổng quan là rất nhiều công việc nếu bạn cần xóa nhiều bản ghi.
Cách giải quyết tốt nhất là tạo một loại bản ghi riêng biệt sẽ chứa một bản ghi cho mỗi ngày. Sau đó, trong các bản ghi mà bạn muốn xóa cho ngày đó thiết lập một CKReference cho bản ghi ngày cụ thể đó và đặt hành động của nó thành CKReferenceAction.DeleteSelf
Sau đó bạn chỉ phải xóa bản ghi ngày và tất cả các bản ghi liên quan sẽ bị xóa. Xóa một bản ghi đó có thể dễ dàng được thực hiện từ trang tổng quan hoặc bạn có thể tạo chức năng trong ứng dụng của mình hoặc bạn có thể tạo ứng dụng thứ 2 cho các tác vụ quản trị.
4
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)
}
5
Hãy thử một cái gì đó như thế này:
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
}
})
}
}
}
"RECORD TYPE" nên được loại hồ sơ của bạn. Hi vọng điêu nay co ich.
Các vấn đề liên quan
- 1. CloudKit: Tìm nạp tất cả các bản ghi với một loại bản ghi nhất định?
- 2. Bản ghi số CloudKit
- 3. Bản ghi CloudKit đã xóa Xuất hiện lại
- 4. MySQL XÓA tất cả nhưng bản ghi X mới nhất
- 5. Tổng số bản ghi Django mỗi ngày
- 6. Chọn tất cả các bản ghi 'trẻ' hơn 7 ngày
- 7. Xóa tất cả các bản ghi bảng Azure
- 8. xóa tất cả bản ghi khỏi bảng trong mysql
- 9. Tìm các bản ghi có hai bản ghi cụ thể trong một bảng khác
- 10. CloudKit - Cách lưu bản ghi nếu không tồn tại
- 11. Xóa bản ghi trùng lặp trong PostgreSQL
- 12. Làm thế nào tôi có thể xóa tất cả các bản ghi từ một TClientDataset cùng một lúc?
- 13. Làm thế nào để có được bản ghi RANDOM từ mỗi thể loại trong MySQL?
- 14. Xóa bản ghi từ nhiều bảng cùng một lúc?
- 15. Loại trừ tập bản ghi hoạt động khỏi một bản ghi khác?
- 16. Phân biệt một thể hiện bản ghi từ bản đồ
- 17. Xóa bản ghi theo id?
- 18. Khuôn khổ thực thể và bản ghi bị xóa mềm
- 19. SQL để có một bản ghi cụ thể ở phía trên, tất cả những người khác bên dưới
- 20. Chọn bản ghi từ NGAY BÂY GIỜ() -1 Ngày
- 21. Xóa tất cả các bản ghi có liên quan khỏi nhiều bảng
- 22. Loại bản ghi: cách nhập một lớp từ tệp javascript?
- 23. chọn tất cả các bản ghi được tạo trong giờ
- 24. SQL Nhận tất cả các bản ghi cũ hơn 30 ngày
- 25. Tìm tất cả các bản ghi có trường phi nil?
- 26. Websphere tất cả các bản ghi sẽ SystemOut.log
- 27. Làm thế nào để xóa tất cả các bản ghi trùng lặp khỏi Bảng SQL?
- 28. Chọn bản ghi từ một tuần trước đó trong mysql
- 29. Phân loại các bản ghi trong Java
- 30. Cách xóa tất cả các bản ghi có liên quan khỏi các bảng MySQL khác nhau
đây là cách chậm hơn do vòng lặp for, nếu bạn có nhiều hơn thì 3-5 mục này sẽ mất nhiều thời gian hơn sau đó một phút !! bạn nên sử dụng một đợt xóa như thế này: http://stackoverflow.com/a/36414506/530884 – Shaybc
Vòng lặp đó đang bắt đầu một số hoạt động không đồng bộ một cái khác! Bạn sẵn sàng có bao nhiêu kết nối đồng thời? Tôi sẽ tuần tự hóa nó bằng cách nào đó. –