文字列変数を設定し、常に小文字にしたいと考えています。
これは私のコードです:
var alwaysLowercaseString : String? {
didSet{
alwaysLowercaseString = alwaysLowerCaseString!.lowercaseString
}
}
しかし、私がそれを使用すると、無限ループに陥ります。どうすればこの問題を解決できますか?
文字列変数を設定し、常に小文字にしたいと考えています。
これは私のコードです:
var alwaysLowercaseString : String? {
didSet{
alwaysLowercaseString = alwaysLowerCaseString!.lowercaseString
}
}
しかし、私がそれを使用すると、無限ループに陥ります。どうすればこの問題を解決できますか?
これは正しいアプローチです。LeoDabus は、この回答の功績に値します。
var alwaysLowercaseString : String? {
didSet{
alwaysLowercaseString = alwaysLowercaseString?.lowercaseString
print(alwaysLowercaseString)
}
}
var alwaysLowercaseString : String? {
didSet{
if alwaysLowercaseString != alwaysLowerCaseString!.lowercaseString {
alwaysLowercaseString = alwaysLowerCaseString!.lowercaseString
}
}
}
これは、小文字の文字列がすでに小文字である場合、値をalwaysLowercaseString
再度変更しないため、didSet
無限に呼び出されないようにチェックします。alwaysLowercaseString
小文字に設定すると壊れます。