Hi,
zu Backupzwecken und zum Übertragen von Einstellungen möchte ich Daten als JSON per Mail als Anhang verschicken und als Datei auch wieder einlösen können.
Das Verschicken klappt auch wunderbar, ich kann mir die E-Mail schicken und im Anhang ist auch mein JSON als Datei so drin, wie ich es möchte.
Aber beim Einlesen hapert es noch ein wenig.
Ich habe das so eingerichtet, dass ich aus der Mail-App den Anhang auswählen und an meine App übergeben kann. Auch das funktioniert und der Anhang steht mir im Programm zu Verfügung.
Wenn ich ihn die Datei dann öffne und mir Anschaue, dann steht da nur leider nicht das drin, was ich erwarte. Ich nehmen mal an, dass liegt am encoding.
Datei erstellen mache ich so:
Dann ist in der Datei, wenn ich sie mal auf dem Mac öffne das hier:
Die Datei dann wieder öffnen in der App mache ich so:
Alles anzeigen
Ja, sieht ein bisschen vermasselt aus.
Aber in der Variable "Inhalt" bzw. in meinem Textview habe ich dann sowas:
Irgendwas mach ich beim Einlesen wohl falsch. Könnt ihr mir mal auf die Sprünge helfen?
Danke. Gruß Dieter
zu Backupzwecken und zum Übertragen von Einstellungen möchte ich Daten als JSON per Mail als Anhang verschicken und als Datei auch wieder einlösen können.
Das Verschicken klappt auch wunderbar, ich kann mir die E-Mail schicken und im Anhang ist auch mein JSON als Datei so drin, wie ich es möchte.
Aber beim Einlesen hapert es noch ein wenig.
Ich habe das so eingerichtet, dass ich aus der Mail-App den Anhang auswählen und an meine App übergeben kann. Auch das funktioniert und der Anhang steht mir im Programm zu Verfügung.
Wenn ich ihn die Datei dann öffne und mir Anschaue, dann steht da nur leider nicht das drin, was ich erwarte. Ich nehmen mal an, dass liegt am encoding.
Datei erstellen mache ich so:
Dann ist in der Datei, wenn ich sie mal auf dem Mac öffne das hier:
Quellcode
- {"2":{"Elements":{"28-00044e3ba3ff":{"icon":"shc-icon-ds18x20","function":"","max":"","cellheight":44,"avg":"","found":1,"val":"","type":"DS18x20","name":"Wohnzimmer","temp":"24,2 °C","buttontext":0,"id":"28-00044e3ba3ff","power":"","sortkey":0,"formattype":0,"min":"","alti":"","energy":"","hum":"","press":"","state":0},"19":
- ... usw
Quellcode
- func getBackupFileUrl() -> NSURL {
- let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first
- do {
- let directoryContent = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsUrl!, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions())
- restoreTextView.text = String(directoryContent)
- for file in directoryContent
- {
- let datei = String(file)
- print(datei)
- if datei.rangeOfString("backup.shc") != nil {
- return file
- }
- }
- } catch {
- }
- return NSURL()
- }
- @IBAction func restoreButtonAction(sender: UIButton) {
- var error: NSError
- let filedata = getBackupFileUrl()
- let datei = NSData(contentsOfURL: filedata)
- // Dieser Block ist nur um den Inhalt mal in ein TextView zu kopieren
- do {
- let inhalt = try NSString(contentsOfURL: filedata, encoding: NSUTF8StringEncoding) as? String
- self.restoreTextView.text = inhalt
- } catch {
- print("Fehler bei lesen von inhalt")
- }
- // Ende Testblock
- if datei != nil {
- do {
- let Dict = try NSJSONSerialization.JSONObjectWithData(datei!, options: [.AllowFragments]) as! NSDictionary
- print(Dict)
- let version = Dict["Version"] as! Double
- print("Version: \(version)")
- } catch {
- print("Fehler beim Serialisieren: \(error)")
- }
- }
- print("restoreBackupData")
- deleteOldBackupFiles()
- restoreButton.enabled = false
- }
Aber in der Variable "Inhalt" bzw. in meinem Textview habe ich dann sowas:
Quellcode
- <7b223222 3a7b2245 6c656d65 6e747322 3a7b2232 382d3030 30343465 33626133 6666223a 7b226963 6f6e223a 22736863 2d69636f 6e2d6473 31387832 30222c22 66756e63 74696f6e 223a2222 2c226d61 78223a22 222c2263 656c6c68 65696768 74223a34 342c2261 7667223a 22222c22 666f756e 64223a31 2c227661 6c223a22 222c2274 79706522 3a224453 31387832 30222c22 6e616d65 223a2257 6f686e7a 696d6d65 72222c22 74656d70 223a2232 342c3220 c2b04322 2c226275 74746f6e 74657874 223a302c 22696422 3a223238 2d303030 34346533 62613366 66222c22 706f7765 72223a22 222c2273 6f72746b 6579223a 302c2266 6f726d61
- ... usw.
Danke. Gruß Dieter