将模型中的字符串数组作为全部小写

时间:2017-10-16 00:25:21

标签: arrays swift string model-view-controller

我有一个返回字符串数组数组的基本数据模型。我需要能够将所有字符串数组作为小写返回。这是我正在使用的模型:

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小写或正常情况下生成所有字符串的任何帮助都会有所帮助。感谢。

1 个答案:

答案 0 :(得分:4)

像这样改变你的结构:

方法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 }
    }
}