2017-07-18 4 views
13

Ich habe mit Codable herumspielen und lesen und schreiben JSON aus und in eine Datei. Jetzt möchte ich eine benutzerdefinierte Coder schreiben, die iOS .strings Dateien lesen und schreiben kann. Kann mir jemand dabei helfen? Ich fand die Protokolle Encoder und Decoder, aber ich habe keine Ahnung, was ich sollte hier implementieren:Swift 4 benutzerdefinierte Encoder und Decoder

class StringsEncoder {} 

extension StringsEncoder: Encoder { 
    var codingPath: [CodingKey?] { 
     return [] 
    } 

    var userInfo: [CodingUserInfoKey : Any] { 
     return [:] 
    } 

    func container<Key>(keyedBy type: Key.Type) -> KeyedEncodingContainer<Key> where Key : CodingKey { 

    } 

    func unkeyedContainer() -> UnkeyedEncodingContainer { 

    } 

    func singleValueContainer() -> SingleValueEncodingContainer { 

    } 
} 

extension StringsEncoder: Decoder { 
    func container<Key>(keyedBy type: Key.Type) throws -> KeyedDecodingContainer<Key> where Key : CodingKey { 

    } 

    func unkeyedContainer() throws -> UnkeyedDecodingContainer { 

    } 

    func singleValueContainer() throws -> SingleValueDecodingContainer { 

    } 
} 
+0

Haben Sie in die 'Codable'-Protokolle geschaut und was können sie tun? Ich bin mir nicht sicher, ob das '.strings'-Format dafür geeignet ist - die' Codable'-Protokolle müssen allgemeine Formate unterstützen, die Arrays, Wörterbücher, Zahlen, Nullwerte usw. haben. '.strings' files don ' Ich unterstütze all das ... Es ist ein sehr einzweckiges Format. –

+0

Sie können das wahrscheinlich, obwohl es für das Strings-Format etwas übertrieben erscheint. Sehen Sie sich zum Beispiel die [JSONEncoder source] (https://github.com/apple/swift/blob/master/stdlib/public/SDK/Foundation/JSONEncoder.swift) an, die gut dokumentiert ist. [swift unboxed] (https://swiftunboxed.com/) wird einen Beitrag haben, der dem ähnlich ist, was Sie bald suchen Ich denke, – nathan

+1

Ich weiß, dass Sie Codable verstehen möchten, aber auf der Gelegenheit möchten Sie nur lesen und schreiben zu Strings Datei Checkout 'String.propertyListFromStringsFileFormat()' und 'Dictionary.descriptionInStringsFileFormat' –

Antwort

-2

Sie können keinen Code/Decoder-Dateien. Lesen Sie stattdessen Ihre .strings-Dateien in Dictionary.descriptionInStringsFileFormat und kodieren Sie dieses Dictionary in Standardform

Verwandte Themen