Bestätigung bei Löschanfrage in PHPhotoLibrary deaktivieren

Ich versuche, Videos in PHPhotoLibrary zu speichern und sie dann zu entfernen, wenn der Upload auf den Remote-Server des Clients in der Anwendung abgeschlossen ist (im Grunde genommen dient die Fotobibliothek als temporärer Speicher, um eine zusätzliche Sicherheitsebene hinzuzufügen, falls etwas fehlschlägt). Ich speichere meine Videos bereits im Anwendungsverzeichnis.

Problem

Das Problem ist, dass alles funktionieren muss, ohne dass der Benutzer etwas eingibt. Sie können Videos wie folgt in die Fotobibliothek schreiben:

func storeVideoToLibraryForUpload(upload : SMUpload) {

    if PHPhotoLibrary.authorizationStatus() != PHAuthorizationStatus.Authorized {

        // Don't write to library since this is disallowed by user
        return
    }

    PHPhotoLibrary.sharedPhotoLibrary().performChanges({ () -> Void in

        // Write asset
        let assetRequest = PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: upload.nonsecureFilePath!)!)
        let assetPlaceholder = assetRequest.placeholderForCreatedAsset
        let localIdentifier = assetPlaceholder.localIdentifier

        // Store local identifier for later use
        upload.localAssetIdentifier = localIdentifier

    }, completionHandler: { (success, error) -> Void in
        ....
    })
}

Und das funktioniert einwandfrei. Ich erhalte eine lokale Kennung und speichere sie für die spätere Verwendung. Einhörner und Regenbogen.

Wenn ich das Video sofort nach Abschluss des Uploads entfernen möchte, rufe ich Folgendes auf:

func removeVideoFromLibraryForUpload(upload : SMUpload) {

    // Only proceed if there is asset identifier (video previously stored)
    if let assetIdentifier = upload.localAssetIdentifier {

        // Find asset that we previously stored
        let assets = PHAsset.fetchAssetsWithLocalIdentifiers([assetIdentifier], options: PHFetchOptions())

        // Fetch asset, if found, delete it
        if let fetchedAssets = assets.firstObject as? PHAsset {

            PHPhotoLibrary.sharedPhotoLibrary().performChanges({ () -> Void in

                // Delete asset
                PHAssetChangeRequest.deleteAssets([fetchedAssets])

            }, completionHandler: { (success, error) -> Void in
                ...
            })
        } 
    }
}

Welche das Video erfolgreich löscht, ABER Benutzer müssen zuerst den Löschvorgang bestätigen. Dies ist ein Problem, da das Sichern nicht funktioniert.

Ich weiß natürlich, warum es eine Bestätigung gibt (damit du zum Beispiel nicht die gesamte Benutzerbibliothek löschst, aber die Sache ist, dass meine App das Video gemacht hat - und so dachte ich, dass es einen Ausweg geben wird, da ich als "Besitzer" sollte dies nicht tun oder zumindest die Option haben, die Bestätigung zu deaktivieren.

Danke im Voraus

TLDR: Wie kann ich die Bestätigung bei einer Löschanforderung deaktivieren, wenn meine Anwendung diesen Inhalt erstellt hat? (Ich möchte nichts anderes löschen.)

Hinweis Jemand kann wahrscheinlich sagen, dass dies etwas Seltsames ist, aber die Anwendung wird intern verteilt, und es gibt gute Gründe, dies zu tun (der Videoinhalt ist zu wertvoll, um verloren zu gehen, auch wenn der Benutzer die Anwendung aus irgendeinem Grund löscht, oder Es gibt alles, was schief geht. Wir müssen in der Lage sein, die Videos zu erhalten.) Also hinterfragen Sie das bitte nicht und konzentrieren Sie Ihre Aufmerksamkeit nur auf die Frage:)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage