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 に答える