13
Bawiłem się z Codable
i czytania i pisania JSON zi do pliku. Teraz chciałbym napisać niestandardowy Coder
, który może odczytywać i zapisywać pliki iOS .strings
. Czy ktoś może mi w tym pomóc? Znalazłem protokołów Encoder
i Decoder
, ale nie mam pojęcia, co należy wdrożyć tutaj:Swift 4 niestandardowy koder i dekoder
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 {
}
}
Czy zapoznałeś się z protokołami 'Codable' i co potrafią? Nie jestem pewien, czy format '.strings' jest odpowiedni dla tego - protokoły' Codable' muszą obsługiwać formaty ogólnego przeznaczenia, które mają tablice, słowniki, liczby, wartości puste, itp. '.trings' files don ' t obsługuje to wszystko ... To bardzo jednolity format. –
Prawdopodobnie można, choć wydaje się nieco przesadzone dla formatu strun. Sprawdź na przykład źródło [JSONEncoder] (https://github.com/apple/swift/blob/master/stdlib/public/SDK/Foundation/JSONEncoder.swift), które jest dobrze udokumentowane. [szybki unboxed] (https://swiftunboxed.com/) będzie miał post podobny do tego, którego szukasz wkrótce myślę, że – nathan
Wiem, że chcesz zrozumieć Codable, ale na off-szansę po prostu chcesz przeczytać i napisać do sprawdzania plików łańcuchowych 'String.propertyListFromStringsFileFormat()' oraz 'Dictionary.descriptionInStringsFileFormat' –