如何设置字符串变量并使其始终小写?

时间:2016-01-27 03:41:43

标签: swift didset property-observer

我想设置一个字符串变量,并希望它始终保持小写。

这是我的代码:

var alwaysLowercaseString : String? {

    didSet{
        alwaysLowercaseString = alwaysLowerCaseString!.lowercaseString
    }
}

但是当我使用它时,它会进入无限循环。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

我坚持认为,这是正确的做法。 LeoDabus值得赞扬这个答案:

modelToViewAttr

答案 1 :(得分:2)

var alwaysLowercaseString : String? {

    didSet{
        if alwaysLowercaseString != alwaysLowerCaseString!.lowercaseString {
            alwaysLowercaseString = alwaysLowerCaseString!.lowercaseString
        }
    }
}

这将检查如果小写字符串已经是小写,则它不会再次更改alwaysLowercaseString的值,因此您无法无限地调用didSet。它会在alwaysLowercaseString设置为小写后中断。