2

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

这是我的代码:

var alwaysLowercaseString : String? {

    didSet{
        alwaysLowercaseString = alwaysLowerCaseString!.lowercaseString
    }
}

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

4

2 回答 2

3

我的立场是正确的,这是正确的方法。LeoDabus 这个答案值得称赞:

var alwaysLowercaseString : String? {

    didSet{

    alwaysLowercaseString = alwaysLowercaseString?.lowercaseString
      print(alwaysLowercaseString)
    }
}
于 2016-01-27T03:55:58.607 回答
2
var alwaysLowercaseString : String? {

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

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

于 2016-01-27T03:59:59.220 回答