2017-10-16 17 views
0

文字列配列の配列を返す基本データモデルがあります。すべての文字列配列をlowercasedとして返すことができる必要があります。私が働いているモデルは以下の通りです:モデルから文字列配列をすべて小文字として返す

struct MyData { 
    static func returnAllData(lowercase: Bool) -> [Model] { 
     return [ 
      Model(stringArray: [”Hello”, There”]), 
      Model(stringArray: [“World”, “Fu”, “Bar”]) 
     ] 
    } 
} 

小文字のパラメータを追加しました。私はちょうどコントローラにそのパラメータを結び付ける方法を知らないので、Boolが何であるか(小文字か通常のいずれか)に応じて文字列の配列を表示します。

ここで私は上記のモデルからデータを取得するために、コントローラに使用しています何:

var allStrings = MyData.returnAllData(lowercase: true) 
// but currently... this parameter doesn't do anything. 

私はreturnAllData小文字または通常のケースからすべての文字列を作るためにそのパラメータを使用することができる方法上の任意のヘルプは次のようになり役に立ったありがとう。

答えて

3
はこのようにあなたの構造体を変更し

方法1

struct MyData { 
    static func returnAllData(lowercase: Bool) -> [Model] { 
     return [ 
      Model(stringArray: ["Hello", "There"].map { lowercase ? $0.lowercased() : $0 }), 
      Model(stringArray: ["World", "Fu", "Bar"].map { lowercase ? $0.lowercased() : $0 }) 
     ] 
    } 
} 

方法2

struct MyData { 
    static func returnAllData(lowercase: Bool) -> [Model] { 
     return [ 
      Model(stringArray: ["Hello", "There"], lowercase: lowercase), 
      Model(stringArray: ["World", "Fu", "Bar"], lowercase: lowercase) 
     ] 
    } 
} 

struct Model { 
    var stringArray : [String] 

    init(stringArray: [String], lowercase: Bool) { 
     self.stringArray = stringArray.map { lowercase ? $0.lowercased() : $0 } 
    } 
} 
関連する問題