gpt4 book ai didi

swift - 由于信号 : Segmentation fault: 11 cause,命令失败

转载 作者:行者123 更新时间:2023-11-30 11:36:53 24 4
gpt4 key购买 nike

下面的代码func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String)导致此错误:由于信号导致命令失败:段错误:11原因

var finalStr = (textField.text! as NSString).replacingCharacters(in: range, with: string) 
if textfield == mobile && finalStr.hasPrefix("0"){
textField.text = finalStr.nonZeroNumber
return false }
<小时/>
var nonZeroNumber:String{
let local = Double(self)
return String(format: "%.0f",local!)
}

代码有什么问题,因为它在示例项目中工作正常。

最佳答案

您将强制展开本地内容,而不检查它是否为零,如果您有非数字字符,则可能是零。

您要么需要一个默认值,要么更改方法以在失败时返回 nil,并在其他地方检查 nil。

var nonZeroNumber:String{
let local = Double(self) ?? 0 // use 0 if Double(self) was nil
return String(format: "%.0f",local) // local, not local!
}

var nonZeroNumber: String? {    // note Optional
guard let local = Double(self) else {
return nil
}
return String(format: "%.0f, local)
}

...
textField.text = finalStr.nonZeroNumber ?? "default value"

关于swift - 由于信号 : Segmentation fault: 11 cause,命令失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49652424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com