Realm prepareForSeque 和 IBAction 的问题

Issues with Realm prepareForSeque and IBAction

Swift 2.2, IOS9、 最新版本的领域

我有一个经典的双控制器项目,它们都是 TableView 控制器。

ViewController 1 是项目列表:项目ViewController ViewController 2 有能力向行程中添加项目 = ItemDetailsViewController

准备细节和保存细节的代码是使用细节控制器中的基本 prepareForSeque 和列表控制器中的 @IBAction 函数完成的

当使用基本数组完成时,一切都运行良好。当时的数组叫做items,单个元素叫做item。

但是,当我将其转换为 Realm 项目时出现了问题。

我开始在 @IBAction 函数中的 ItemsViewController 中出现错误。

为了追查错误,我主要在详细信息控制器中执行了写入命令作为故障排除activity,但打算在解决问题后将其移至列表控制器

准备 segue 代码

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "SaveItemDetail" {

        item.id = NSUUID().UUIDString
        item.name = nameTextField.text!

        try! uiRealm.write {
            uiRealm.add(item)
        }

    }

}

IBAction 的第 1 版。

@IBAction func saveTripDetail(segue:UIStoryboardSegue) {    

}

在这个我什么都不做的版本中,我在块的末尾遇到了中断错误。或者,如果我输入 print("hello world") 在 运行 时间

出现中断错误

版本 2 如果我尝试从详细信息控制器中获取项目信息

@IBAction func saveItemDetail(segue:UIStoryboardSegue) {

    if let itemDetailsViewController = segue.sourceViewController as? ItemDetailsViewController {
        if let item = itemDetailsViewController.item {
        }
    }

}

在这个版本中,我无法使构建工作并出现以下错误

initialiser for conditional binding must have Optional type not 'Item'

所以我显然遗漏了一些关于 Realm 如何与 类 一起工作的东西并且无法真正理解为什么。对此有什么想法吗?

好吧,这一切似乎都归结为 swift 正在解释的一些注释掉的代码,因此导致了各种各样的问题,然后让我陷入了各种各样的困境。

关闭问题