2017-07-18 41 views
13

Codable ile dolaşıyor ve bir dosyadan JSON okuyor ve yazıyor. Şimdi, iOS .strings dosyalarını okuyabilen ve yazabilen bir özel Coder yazmak istiyorum. Birisi bana yardım edebilir mi? Ben protokolleri Encoder ve Decoder bulundu, ancak ben burada uygulamalıdır hiçbir fikrim yok:Swift 4 özel kodlayıcı ve kod çözücü

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

'Codable' protokollerine ve yapabileceklerine baktınız mı? ".strings" biçiminin bunun için uygun olduğuna emin değilim - "Codable" protokolleri diziler, sözlükler, sayılar, boş değerler vb. Içeren genel amaçlı formatları desteklemelidir. Bunlardan herhangi birini desteklemez ... Bu çok amaçlı bir formattır. –

+0

Belki de, dizeleri biçimi için biraz aşırı gibi görünüyor olabilir. Örneğin, iyi belgelendirilmiş olan [JSONEncoder kaynağı] 'na (https://github.com/apple/swift/blob/master/stdlib/public/SDK/Foundation/JSONEncoder.swift) göz atın. [hızlı kutsanmamış] (https://swiftunboxed.com/) yakında aradığın şeye benzeyen bir gönderiye sahip olacak sanırım – nathan

+1

Anladığım kadarını biliyorum Codable, ama şanssızlığı sadece okumak ve yazmak istiyorsun dize için dosya stringout 'String.propertyListFromStringsFileFormat()' ve 'Dictionary.descriptionInStringsFileFormat' –

cevap

-2

Yapamazsınız kodlama/kod çözme dosyaları. Bunun yerine .strings dosyalarınızı Dictionary.descriptionInStringsFileFormat içine okuyun ve sözlüğü standart olarak kodlayın