Observe que la eliminación de CKRecord a través de CKSubscription no funciona

CKSubscription doc dice:Cuando una modificación de registro hace que se active una suscripción, el servidor envía notificaciones push a todos los dispositivos con esa suscripciónexcepto el que hizo el cambio original para el registro.

Supongamos que tengo dos dispositivos:device 1 ydevice 2 conectado desde diferentes cuentas de iCloud. Supongamos que ambos dispositivos están suscritos para la eliminación de registros para un determinado tipo de registro.

Sidevice 1 crea un registro y luegodevice 1 entonces lo borradevice 2 ser notificado - ESTO ES SEGÚN EL DOC, PERO ...Sidevice 1 crea un registro y luegodevice 2 entonces lo borradevice 2 recibir notificaciones: NO creo que esté DE ACUERDO CON EL DOC, y NO TIENE NINGÚN SENTIDO,device 2 lo borró asídevice 1 debe ser notificado

CONFIGURAR SUSCRIPCIÓN EN EL DISPOSITIVO 1 Y DISPOSITIVO 2

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert, categories: nil))
    application.registerForRemoteNotifications()

    let defaultContainer = CKContainer.defaultContainer()
    let publicDatabase = defaultContainer.publicCloudDatabase

    publicDatabase.fetchAllSubscriptionsWithCompletionHandler({subscriptions, error in

        if error == nil {

            if subscriptions.count == 0 {

                let subscription = CKSubscription(recordType: "OU", predicate: NSPredicate(value: true), options: .FiresOnRecordDeletion)
                subscription.notificationInfo = CKNotificationInfo()
                subscription.notificationInfo.shouldBadge = false
                subscription.notificationInfo.alertBody = "OU removed or upated"
                publicDatabase.saveSubscription(subscription, completionHandler: {subscription, error in
                    if error == nil {
                    } else {
                        println("\(error.localizedDescription)")
                    }
                })
            }

        } else {
            println("\(error.localizedDescription)")
        }
    })


    return true
}

CREAR REGISTRO en DISPOSITIVO 1

@IBAction func addOU(sender: AnyObject) {

    var defaultContainer = CKContainer.defaultContainer()
    var publicDatabase = defaultContainer.publicCloudDatabase

    let r = CKRecord(recordType: "OU", recordID: CKRecordID(recordName: "aaaa"))
    publicDatabase.saveRecord(r, completionHandler: { r2, error in

        if error == nil {
        } else {
            println("\(error.localizedDescription)")
        }
    })
}

BORRAR REGISTRO DEL DISPOSITIVO 2

@IBAction func removeOU(sender: AnyObject) {

    var defaultContainer = CKContainer.defaultContainer()
    var publicDatabase = defaultContainer.publicCloudDatabase

    publicDatabase.deleteRecordWithID(CKRecordID(recordName: "aaaa"), completionHandler: {recordID, error in

        if error == nil {

        } else {
            println("\(error.localizedDescription)")
        }
    })
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta