2017-07-18 17 views
13

私はCodableで遊んでいて、ファイルからJSONを読み書きしています。今度は、Coderというカスタムを書いて、iOS .stringsファイルを読み書きすることができます。誰もこれで私を助けることができますか?私はプロトコルにEncoderDecoderを見つけましたが、私はここに実装すべきかは考えていません:Swift 4カスタムエンコーダとデコーダ

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'プロトコルを調べましたか?私は、 '.strings'フォーマットがこれにふさわしいかどうか確信していません。' Codable'プロトコルは、配列、辞書、数字、ヌル値などを持つ汎用フォーマットをサポートしなければなりません。 '.strings'ファイルは、それをサポートしています...それは単なる目的のフォーマットです。 –

+0

あなたはおそらく、文字列形式のために少し残忍に思えます。例えば、よく分かっている[JSONEncoder source](https://github.com/apple/swift/blob/master/stdlib/public/SDK/Foundation/JSONEncoder.swift)を見てください。 [swift unboxed](https://swiftunboxed.com/)はすぐにあなたが探しているものに似た投稿をします。 – nathan

+1

私はあなたがCodableを理解したいと思っていますが、オフチャンスであなたはただ読んで書くだけです文字列ファイルのチェックアウト 'String.propertyListFromStringsFileFormat()'と 'Dictionary.descriptionInStringsFileFormat' –

答えて

-2

あなたはできませんコード/デコードファイルを。代わりにあなたの.stringsファイルをDictionary.descriptionInStringsFileFormatに読み込み、その辞書を標準的な方法でエンコードしてください。