[英]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.