Ios 在视图之间传递属性或托管对象ID-核心数据

Ios 在视图之间传递属性或托管对象ID-核心数据,ios,core-data,swift,nsmanagedobject,Ios,Core Data,Swift,Nsmanagedobject,在此处输入代码使用Swift和Xcode 6 View One.swift=TableView View Two.swift=查看w/TextFields(和其他UI元素),这些字段根据TableView中选择的项目而变化 我已经编写了代码,将在TableView中选择的托管对象ID传递给View Two(作为委托属性)但这是最好的方法吗 //main view class var mainAry = [String]() // for TableView var obj

在此处输入代码
使用Swift和Xcode 6

View One.swift=TableView

View Two.swift=查看w/TextFields(和其他UI元素),这些字段根据TableView中选择的项目而变化

我已经编写了代码,将在TableView中选择的托管对象ID传递给View Two(作为委托属性)但这是最好的方法吗

    //main view class
    var mainAry = [String]() // for TableView
    var objectsAry = [NSManagedObject]()
    var itemObChosen: NSManagedObject? = nil  //protocol property
    
    //loads the table view and objectsAry
    func loadMyItems() {
           objectsAry.removeAll() 
           let appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
           let contextOb: NSManagedObjectContext = appDel.managedObjectContext!
           let cdFetch = NSFetchRequest(entityName: "Items")
           var getData = contextOb.executeFetchRequest(cdFetch, error: nil)!
            
           if(getData.count > 0) {
                for eachItem in getData {
                    var itemItem = eachItem.valueForKey("itemname") as String!
                    if (itemItem != nil) {
                    objectsAry.append(eachItem as NSManagedObject)
                    }
                }  
            }
        }
    
    //within didSelectRowAtIndexPath 
    itemClkdVar = indexPath.row
    itemObChosen = objectsAry[itemClkdVar] //passed to the other view as chosen object

    //fixed to eliminate mainAry
maincell.textLabel?.text = self.objectsAry[indexPath.row].valueForKey("itemname") as? String

为什么不直接传递托管对象而不是它的idI呢?我试过了,并且出现了错误,但是现在,在Xcode的帮助下,我让它工作了。我不清楚核心数据的内存方面。似乎我必须将一个实体的所有对象都提取到一个var中,然后循环它们以进行匹配。W SQL,除非您需要,否则不会加载它。否,您可以在执行fetch REQUESTEYES之前指定查询参数。例如,我将深入研究谓词信息。我无法立即找到任何可能给我一个特定对象的谓词,但它可能在那里。除非有方法提取单击的对象(DidSelectRowatineXpath),否则在这一点上似乎可以正常工作。