首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于信号导致命令失败:分割错误: 11原因

由于信号导致命令失败:分割错误: 11原因
EN

Stack Overflow用户
提问于 2018-04-04 13:34:05
回答 1查看 146关注 0票数 0

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

代码语言:javascript
运行
复制
var finalStr = (textField.text! as NSString).replacingCharacters(in: range, with: string) 
if textfield == mobile && finalStr.hasPrefix("0"){ 
textField.text = finalStr.nonZeroNumber 
return false }
代码语言:javascript
运行
复制
var nonZeroNumber:String{
             let local = Double(self)
            return String(format: "%.0f",local!)
 }

代码有什么问题,因为它在示例项目中运行得很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-04 15:27:13

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

您需要一个默认值,或者将方法更改为在失败时返回零,并在其他地方检查是否为零。

代码语言:javascript
运行
复制
var nonZeroNumber:String{
    let local = Double(self) ?? 0       // use 0 if Double(self) was nil
    return String(format: "%.0f",local) // local, not local!
}

代码语言:javascript
运行
复制
var nonZeroNumber: String? {    // note Optional
    guard let local = Double(self) else {
        return nil
    }
    return String(format: "%.0f, local) 
}

... 
textField.text = finalStr.nonZeroNumber ?? "default value"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49652424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档