1

Ich speichere ein UIImage zu Core Data. Zuerst konvertiere ich es in NSData und speichere es dann.Holen Sie sich die URL für NSData in CoreData gespeichert

Ich brauche die URL für das Bild nach dem Speichern. Ich mache das, weil ich eine lokale Benachrichtigung mit einem Anhang planen möchte, und die einzige Möglichkeit, dies zu tun, ist AFAIK, mit einer URL.

Hier ist mein Code:

//my image: 
var myImage: UIImage? 
var imageData: NSData? 
    if let image = myImage { 
    imageData = UIImageJPEGRepresentation(image, 0.5)! as NSData 
} 
myEntity.setValue(imageData, forKey: "image") 

Und das ist, wie ich auf die Benachrichtigung eine Anlage hinzufügen sollte:
UNNotificationAttachment.init(identifier: String, url: URL>, options: [AnyHashable : Any]?)

ich das Bild zu speichern und die Planung der Benachrichtigung manuell, wenn der Benutzer Taps auf einer Schaltfläche, um das Bild zu speichern.

Bitte lassen Sie mich wissen, wenn Sie zusätzliche Informationen benötigen.

+0

Speichern Sie das Bild lokal und speichern Sie seine URL CoreData –

Antwort

1

Sie können die URL nicht abrufen. Wenn Sie diese Eigenschaft für die Verwendung von externem Speicher konfiguriert haben, dann könnte es technisch gesehen eine Datei-URL geben. Könnte sein. Aber es gibt keinen dokumentierten Weg, um es zu bekommen, und überhaupt existiert es vielleicht gar nicht - weil die externe Speichereinstellung Core Data nicht benötigt, um externen Speicher zu verwenden, erlaubt es dies einfach.

Wenn Sie diese Einstellung nicht verwendet haben, gibt es nie eine URL, da das Bild als Teil der SQLIte-Datei gespeichert wird.

Wenn Sie eine Datei-URL für das Bild benötigen, speichern Sie das Bild separat von Core Data in einer Datei und speichern Sie den Dateinamen als Entitätseigenschaft. Dann ist die Datei-URL, wo immer Sie die Datei gespeichert haben.

+0

Danke, Tom, ich habe es. – MEnnabah

+0

Ich schiebe die Daten, die in Core Data gespeichert sind, auf CloudKit. Denkst du, dass es eine korrekte Methode ist, die URL des CKAsset in der Benachrichtigung zu verwenden? Es tut mir leid, wenn das von der Hauptfrage weg ist. – MEnnabah

+0

Ich habe CloudKit kaum benutzt, also kann ich nicht sicher sagen. –

Verwandte Themen