簡體   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