     }
     func createCKSCloudDatabaseCustomZoneSubcription()
     {
-        var subcription:CKSubscription = CKSubscription(zoneID: self.cloudDatabaseCustomZoneID, subscriptionID: CKSIncrementalStoreCloudDatabaseSyncSubcriptionName, options: nil)
+        var subcription:CKSubscription = CKSubscription(zoneID: CKRecordZoneID(zoneName: CKSIncrementalStoreCloudDatabaseCustomZoneName, ownerName: CKOwnerDefaultName), subscriptionID: CKSIncrementalStoreCloudDatabaseSyncSubcriptionName, options: nil)
         
         var subcriptionNotificationInfo = CKNotificationInfo()
         subcriptionNotificationInfo.alertBody=""

         return managedObjects.map({(object)->CKRecord in
            
            var managedObject:NSManagedObject = object as! NSManagedObject
            var ckRecordID = CKRecordID(recordName: (managedObject.valueForKey(CKSIncrementalStoreLocalStoreRecordIDAttributeName) as! String), zoneID: CKRecordZoneID(zoneName: CKSIncrementalStoreCloudDatabaseCustomZoneName, ownerName: nil))
            var ckRecord = CKRecord(recordType: (managedObject.entity.name)!, recordID: ckRecordID)
            var entityProperties = managedObject.entity.properties.filter({(object)->Bool in
                

        
        self.operationQueue?.addOperation(fetchRecordChangesOperation)
        self.operationQueue?.waitUntilAllOperationsAreFinished()
        print("Changes \(insertedOrUpdatedCKRecords) Deleted \(deletedCKRecordIDs)")
        return (insertedOrUpdatedCKRecords,deletedCKRecordIDs,fetchRecordChangesOperation.moreComing)
    }
    
    func applyServerChangesToLocalDatabase(insertedOrUpdatedCKRecords:Array<AnyObject>,deletedCKRecordIDs:Array<AnyObject>)->Bool
    {
        print("Applying Server Changes To Local Database")
        return self.insertOrUpdateManagedObjects(fromCKRecords: insertedOrUpdatedCKRecords) && self.deleteManagedObjects(fromCKRecordIDs: deletedCKRecordIDs)
    }
    
