2015-02-06 24 views
0

我在運行代碼時遇到了標題中的錯誤。主要問題出現在下面的代碼中。我真的不明白髮生了什麼事。我開始(並完成)這個項目,在測試版中快速製作賓果追蹤器,但顯然語法有所改變。我想更容易解釋爲什麼我的解決方案無法工作。我提供了我的所有代碼,並希望如果沒有人重用它,但我不能阻止你。感謝您的幫助。致命錯誤:在使用toInt()解包可選值時意外發現nil

if ((newCardB1?.text.toInt()) != nil) // this is not nil 
    { 
     println(newCardB1?.text); // this prints out "Optional("1") when i run it but i only want the 1 
    } 
    else 
    { 
     println("error"); 
    } 
    let B1: Int = "\(newCardB1?.text)".toInt()!; //this is where the problem starts 
    let B2: Int = "\(newCardB2?.text)".toInt()!; 

PS:我對swift有限的編程經驗,但很多與Java。關於來回切換的任何提示也將被讚賞並隨意陳述任何其他問題或錯誤的編碼技術,以便我能夠修復它們。

+0

您可以開始刪除所有分號和省略類型。 – 2015-02-06 06:01:15

回答

0

更改所有類型的語句讓B1:Int =「(newCardB1?.text)」toInt()!;對此模板:讓B1:Int =(newCardB1?.text)!. toInt()!。原因是:newCardB1?.text已經是一個字符串。如果使用「()」插入它,我不確定它在哪裏結束。還要注意! (newCardB1?.text)!沒有它的代碼將不會編譯。

關於你的風格,很明顯你來自Java。分號在Swift中很少需要。除此之外,風格很好。也許有點冗長。

+0

謝謝!這似乎修復了它。 – user3743262 2015-02-07 15:40:11

相關問題