Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. let container = CKContainer.default
  2. var privateDatabase: CKDatabase?
  3. var currentRecord: CKRecord?
  4. var photoURL: URL?
  5. var recordZone: CKRecordZone?
  6.  
  7. override func viewDidLoad() {
  8. super.viewDidLoad()
  9. // Do any additional setup after loading the view, typically from a nib.
  10.  
  11. privateDatabase = container().privateCloudDatabase
  12. recordZone = CKRecordZone(zoneName: "HouseZone")
  13.  
  14. privateDatabase?.save(recordZone!,
  15. completionHandler: {(recordzone, error) in
  16. if (error != nil) {
  17. self.notifyUser("Record Zone Error",
  18. message: "Failed to create custom record zone.")
  19. } else {
  20. print("Saved record zone")
  21. }
  22. })
  23. }
  24.  
  25.  
  26. @IBAction func saveAction(_ sender: Any) {
  27.  
  28. if let img = selImageView.image{
  29. photoURL = self.saveImageToFile(img)
  30. }
  31.  
  32.  
  33. let asset = CKAsset(fileURL: photoURL!)
  34. let myRecord = CKRecord(recordType: "Houses",
  35. zoneID: (recordZone?.zoneID)!)
  36.  
  37. myRecord.setObject(addressTextField.text as CKRecordValue?,
  38. forKey: "address")
  39.  
  40. myRecord.setObject(descriptionTextView.text as CKRecordValue?,
  41. forKey: "comment")
  42.  
  43. myRecord.setObject(asset, forKey: "photo")
  44.  
  45.  
  46. let modifyRecordsOperation = CKModifyRecordsOperation(
  47. recordsToSave: [myRecord],
  48. recordIDsToDelete: nil)
  49.  
  50. if #available(iOS 10.0, *) {
  51. modifyRecordsOperation.timeoutIntervalForRequest = 10
  52. } else {
  53. // Fallback on earlier versions
  54. // modifyRecordsOperation.timeoutIntervalForRequest = 10
  55. }
  56.  
  57. modifyRecordsOperation.modifyRecordsCompletionBlock =
  58. { records, recordIDs, error in
  59. if let err = error {
  60. self.notifyUser("Save Error", message:
  61. err.localizedDescription)
  62. } else {
  63. DispatchQueue.main.async {
  64. self.notifyUser("Success",
  65. message: "Record saved successfully")
  66. }
  67. self.currentRecord = myRecord
  68. }
  69. }
  70. privateDatabase?.add(modifyRecordsOperation)
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement