繁体   English   中英

将NSManagedObject从一个视图控制器传递到另一个视图控制器

[英]Pass NSManagedObject from one view controller to another

我正在使用带有Swift的CoreData开发基于表视图的应用程序。 我正在尝试将NSManagedObject从一个视图控制器传递到另一个视图控制器。 下面是我得到的代码和错误。

ViewController1.swift我有以下代码:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {

    if segue.identifier == "Edit" {
        var selectedItem: NSManagedObject = myData[self.tableView.indexPathForSelectedRow().row] as NSManagedObject
        let vc2: ViewController2 = segue.destinationViewController as ViewController2

        vc2.item = selectedItem

    }
}

ViewController2.swift

class ViewController2: UIViewController {

    @NSManaged var item : NSManagedObject

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    // Other default func
}

当我转到ViewController2时出错:

[_TtC6myData18ViewController2 setItem:]: unrecognized selector sent to instance 0x111530000

@NSManaged限定符仅应用于NSManagedObject子类中的属性,因此不应在您的情况下使用它。 这应该工作,

class ViewController2: UIViewController {

    var item : NSManagedObject! 

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    // Other default func
}

在异常上设置断点,以便您可以看到NSException的实际错误/消息是什么。 您还可以看到它被抛出的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM