Ios 添加第二步进器时应用程序崩溃
我已经成功地更新了一个文本字段的值,现在我正在尝试添加第二个步进器,但是应用程序现在崩溃了Ios 添加第二步进器时应用程序崩溃,ios,swift,Ios,Swift,我已经成功地更新了一个文本字段的值,现在我正在尝试添加第二个步进器,但是应用程序现在崩溃了 @IBOutlet weak var propertyTypeField: UITextField! @IBOutlet weak var insuranceTypeField: UITextField! @IBOutlet weak var bedroomField: UITextField! @IBOutlet weak var bathroomField: UITextField! @IBO
@IBOutlet weak var propertyTypeField: UITextField!
@IBOutlet weak var insuranceTypeField: UITextField!
@IBOutlet weak var bedroomField: UITextField!
@IBOutlet weak var bathroomField: UITextField!
@IBOutlet weak var doYouOwnPropertyField: UITextField!
@IBOutlet weak var propertyYearField: UITextField!
@IBOutlet weak var bathroomStepper: UIStepper!
@IBOutlet weak var bedroomStepper: UIStepper!
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor(red: 0xE1/255, green: 0xE1/255, blue: 0xE1/255, alpha: 1.0)
//Bedroom stepper setup
bedroomField.text = "\(Int(bedroomStepper.value))"
bedroomStepper.addTarget(self, action: "stepperValueDidChange:", forControlEvents: .ValueChanged)
//Bathroom stepper setup
bathroomField.text = "\(Int(bathroomStepper.value))"
bathroomStepper.addTarget(self, action: "stepperValueDidChange:", forControlEvents: .ValueChanged)
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func viewTapped(sender : AnyObject) {
propertyTypeField.resignFirstResponder()
insuranceTypeField.resignFirstResponder()
bedroomField.resignFirstResponder()
bathroomField.resignFirstResponder()
doYouOwnPropertyField.resignFirstResponder()
propertyYearField.resignFirstResponder()
}
func stepperValueDidChange(stepper: UIStepper) {
let bedroomStepperMapping: [UIStepper: UITextField] = [bedroomStepper: bedroomField]
if !(bedroomField.text == ""){
bedroomStepperMapping[stepper]!.text = "\(Int(stepper.value))"}
let bathroomStepperMapping: [UIStepper: UITextField] = [bathroomStepper: bathroomField]
if !(bathroomField.text == ""){
bathroomStepperMapping[stepper]!.text = "\(Int(stepper.value))"}
}
这就是我正在使用的全部代码
我得到的错误是
致命错误:在展开可选值时意外发现nil
希望有人能帮忙
使用
感谢代码>卧室步进映射[步进器]!。text
告诉编译器将有一个值。因为没有一个明显的错误。在展开前检查该值是否为零
在你说的行中检查零是个问题
if !(bedroomField.text == ""){
//Ok to unwrap object
}
如果您使用的是可选值,请首先检查值是否存在,如果不存在,则不能有b null,以便按如下方式执行
if let bedFeild = Int(stepper.value) {
bedroomStepperMapping[stepper].text = bedFeild
}
现在,如果该值存在,则不会发生崩溃,然后将该值分配给它,否则不会发生任何崩溃它崩溃在哪一行?stepper.value包含什么?>卧室StepperMapping[stepper]!。text=“(Int(stepper.value))”如何检查此值?我已将文本字段设置为默认值“0”,步进器的当前设置也设置为“0”。向我们展示如何将这些值设置为0BeddroomField.text=“0”bathroomField.text=“0”,并且步进器在属性检查器中设置为零。当然BeddroomField text
应该是
或?
您可以更新您的问题,以显示您实际上是如何做到这一点的。我已经更新了我的答案,为你添加了所有的代码。顺便说一下,非常感谢。嗨,谢谢你的回复,我尝试了你的修复,但它不起作用。我得到一个错误,“条件绑定中的绑定值必须是可选类型”代码如下所示。。。如果let bedroomField=Int(stepper.value){bedroomspedermapping[stepper]!.text=“(Int(stepper.value))”}在if语句中,它应该是bedroomspedermapping[stepper]。text=bedroomField如果let bedroomField=Int(stepper.value){bedroomspedermapping[stepper]。text=bedroomField}
-这是否正确?我收到了相同的错误和附加错误,“/'UIStepper'不能转换为'DictionaryIndex'”这没有提供问题的答案。它阻止了应用程序崩溃?当发布您自己问题的答案时,请提供简短的解释,而不仅仅是一段代码。谢谢
func stepperValueDidChange(stepper: UIStepper) {
if bedroomStepper == stepper{
bedroomField.text = "\(Int(stepper.value))"}
if bathroomStepper == stepper{
bathroomField.text = "\(Int(stepper.value))"}
}
}