【发布时间】:2014-06-21 20:47:24
【问题描述】:
我正在使用 CoreData 和 Swift 开发基于表格视图的应用程序。我正在尝试将 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 子类,而不是视图控制器。
-
@rdelmar 当我这样做时,它说 ViewController2 类没有初始化程序
-
变量项目:NSManagedObject!或 var item : NSManagedObject?我不确定你应该使用哪个。
-
这消除了错误,但随后说无法分配给 vc2 @rdelmar 中的项目
-
如果你把它放在一个没有!或 ?, init(coder aDecoder: NSCoder!) { var item : NSManagedObject }
标签: ios core-data swift nsmanagedobject