如何从swure到局部变量中从Eureka表单中提取值?

时间:2016-07-01 09:34:15

标签: ios swift eureka-forms

当我尝试将其传递给临时变量时,它似乎不会发生。

虽然在构建应用程序时没有错误,但是一旦我尝试输入" rateOfPaddy"的值,它就会失败,引用"致命错误:在展开可选值时意外发现nil&# 34;

如果我做错了什么,请告诉我,无论是与Swift还是Eureka有关?

    form +++ Section()
                <<< DateTimeRow() {
                    $0.tag = "RecordDateTag"
                    $0.title = "Date"
                    $0.value = NSDate()
                    }.cellSetup { cell, row in
                        cell.textLabel?.textColor = UIColor.blackColor()
                    }.onCellHighlight { _ in
                        if let dateInput = formInput["RecordDateTag"] as? String {
                            self.dateInputValue = dateInput
                        }
                    }.onCellUnHighlight { _ in
                        if let dateInput = formInput["RecordDateTag"] as? String {
                            self.dateInputValue = dateInput
                        }
                }

我使用.onChange回调检查并将信息传递给局部变量,这是没用的。 .onCellHighlight和.onCellUnHighlight组合也没有做到这一点!

2 个答案:

答案 0 :(得分:1)

尝试按照记录的here

调用值函数

您可以创建如下方法并从onChange回调中调用它

func updateValues() {
    let allFormData = formInput.values()

    if let dateInput = allFormData["RecordDateTag"] as? String {
        self.dateInputValue = dateInput
    }
}

答案 1 :(得分:0)

错误&#34;致命错误:在展开可选值时意外发现nil&#34; 表示您正在尝试打开包含 nil 的可选项价值。

验证每个 formInput [KEY] 都有一个您所期望的类型的值,然后强行打开 as!

您可以从Optional Binding中受益

if let value = formInput["Some"] as? Int
{
    //Value exist and is an Int
}
else
{
    print("Not an Int")
}

更多参考资料:

Swift Type Casting

Swift Optionals