Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let container = CKContainer.default
- var privateDatabase: CKDatabase?
- var currentRecord: CKRecord?
- var photoURL: URL?
- var recordZone: CKRecordZone?
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- privateDatabase = container().privateCloudDatabase
- recordZone = CKRecordZone(zoneName: "HouseZone")
- privateDatabase?.save(recordZone!,
- completionHandler: {(recordzone, error) in
- if (error != nil) {
- self.notifyUser("Record Zone Error",
- message: "Failed to create custom record zone.")
- } else {
- print("Saved record zone")
- }
- })
- }
- @IBAction func saveAction(_ sender: Any) {
- if let img = selImageView.image{
- photoURL = self.saveImageToFile(img)
- }
- let asset = CKAsset(fileURL: photoURL!)
- let myRecord = CKRecord(recordType: "Houses",
- zoneID: (recordZone?.zoneID)!)
- myRecord.setObject(addressTextField.text as CKRecordValue?,
- forKey: "address")
- myRecord.setObject(descriptionTextView.text as CKRecordValue?,
- forKey: "comment")
- myRecord.setObject(asset, forKey: "photo")
- let modifyRecordsOperation = CKModifyRecordsOperation(
- recordsToSave: [myRecord],
- recordIDsToDelete: nil)
- if #available(iOS 10.0, *) {
- modifyRecordsOperation.timeoutIntervalForRequest = 10
- } else {
- // Fallback on earlier versions
- // modifyRecordsOperation.timeoutIntervalForRequest = 10
- }
- modifyRecordsOperation.modifyRecordsCompletionBlock =
- { records, recordIDs, error in
- if let err = error {
- self.notifyUser("Save Error", message:
- err.localizedDescription)
- } else {
- DispatchQueue.main.async {
- self.notifyUser("Success",
- message: "Record saved successfully")
- }
- self.currentRecord = myRecord
- }
- }
- privateDatabase?.add(modifyRecordsOperation)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement