簡體   English   中英

如何防止 iOS 應用程序因文本字段為空而崩潰?

[英]How to prevent iOS app from crashing due to empty textfields?

我需要找出一種解決方案,以防止在文本字段中未輸入值時應用程序崩潰。 這個想法是如果文本字段為空(nil),則該文本字段的值將等於零。 下面我復制了我的代碼:

讓 taxPercentDou:Double = Double(taxnosign2!)!

有人有什么建議嗎?

你需要用感嘆號停止強制解包選項! 標志:

let b:Double  = Double(rent.text!)!// Rent

如果rent.text為nil 或包含非數字文本,您的應用程序將崩潰。

您可以使用空合並運算符檢查 nil 並將其替換為“0”:

rent.text ?? "0"

您可以像這樣將其傳遞給Double初始值設定項:

Double(rent.text ?? "0")

但是,如果rent.text包含非數字文本,這將返回nil。 您可以再次使用空合並運算符來處理此問題:

let b: Double = Double(rent.text ?? "0") ?? 0.0 

您可以更進一步,編寫一個簡單的實用程序方法,使其更易於用於所有字段:

func convertToDouble(text: String?) -> Double {
    return Double(text ?? "0") ?? 0.0
}

並這樣稱呼它:

let b = convertToDouble(rent.text)

請找到以下代碼。 它可能會幫助你。

static func isNull(aString: AnyObject?) -> Bool
{
    //Check for null
    if(aString is NSNull){
        return true
    }

    if(aString == nil){
        return true
    }

    let x: AnyObject? = aString

    //if string is nsnumber , convert it into string and check
    if(aString is NSNumber){
        var aString1 : String? = ""
        aString1 = String(describing: aString)
        return self.isStringEmpty(aString: aString1!)
    }

    if let aString1 = x as? String
    {
        return self.isStringEmpty(aString: aString1)
    }
    else
    {
        return true
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM