每当我尝试从文本字段获取输入时,都会出现此错误。谁能帮忙吗?

2017-05-08 17:45:04.962124 MyPhotos[32987:246251] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/local/Library/Developer/CoreSimulator/Devices/05F02AB6-BDEA-43EA-9E7E-D547D3A0CC1A/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2017-05-08 17:45:04.962486 MyPhotos[32987:246251] [MC] Reading from private effective user settings.


码:

class AddPhotoController: UIViewController,UITextFieldDelegate {

    @IBOutlet weak var photoTitle: UITextField!
    @IBOutlet weak var photoTags: UITextField!
    @IBOutlet weak var photoURL: UITextField!
    @IBOutlet weak var photoPreview: UIImageView!


    @IBAction func savePhoto(sender: AnyObject) {
        let title: String = photoTitle.text!
    }
}

最佳答案

你说:


  可以说我有一个按钮,当我按下按钮时我想获取文本字段的值


如果由于某种原因您无法从photoTitle读取值,则您的应用将在此行崩溃:

let title: String = photoTitle.text!

在这里,您尝试将photoTitle.text的值强制为String而不管其是否为nil,而Swift并不喜欢这样:)

因此,第一道防线可能是在使用值之前检查该值是否确实为nil,并且只有在该值不为nil时,才使用它。就像是:

@IBAction func savePhoto(sender: AnyObject) {
    if photoTitle.text != nil {
        let title = photoTitle.text!
    }
}


现在您知道title的值不是nil,可以安全地使用它了。

下一个问题...为什么首先是零?您的@IBOutlet似乎有问题。看来photoTitle var没有正确连接到情节提要中的UITextField。您可以验证Interface Builder中的UITextField是否正确连接到您的photoTitle变量吗?

希望这对您有帮助。

09-07 11:48