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 {
}
}
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. –
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
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' –