如何将新创建的数据模型的 ManagedObject 对象传递给函数?

How can I pass-on to a Function a newly created Object of ManagedObject of a Data Model?

我正在编写一个 IOS 应用程序,它从用户那里接收数据,我想将这些数据存储在两个不同的数据模型中,目的不同:

  1. 在临时数据模型 (= ReconciliationModel) 中,一旦设备有 运行 互联网连接和
  2. 与网络服务器同步
  3. 在功能数据模型 (= ProgramModel) 中,它是 ViewController 和应用程序能够运行的基础。

我希望用户能够在没有互联网连接的情况下工作。

因此,在将 Reconciliation-ManagedObject (=reconTask) 的新创建实例保存到第二个函数 (= apiCheckCodes) 之后,我试图传递它。不幸的是,这不起作用,我感谢您的帮助。这是代码:

`func setReconciliationList()->Void {
    let appDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let managedObjectContext = appDelegate.managedObjectContext
    let entityDescription = NSEntityDescription.entityForName("ReconciliationModel", inManagedObjectContext: managedObjectContext!)
    let reconTask = ReconciliationModel(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext!)
    reconTask.reconStatus = false
    reconTask.reconType = 2
    reconTask.reconUser = inputTextField.User
    appDelegate.saveContext()    
    // if Internet available ...
    redeemCodes(reconTask.managedObjectContext!)
}`

func apiCheckCodes(context: context: NSManagedObjectContext)-> Void {
    let fetchRequest = NSFetchRequest(entityName: "ReconciliationModel")
    var requestError: NSError?
    let response = context.executeFetchRequest(fetchRequest, error: &requestError) as [ReconciliationModel!]
    let reconObject = (response as NSArray).lastObject as ReconciliationModel

    var request = NSMutableURLRequest(URL: NSURL(string: "http://localhost:3000/apicodecheck")!)
    let session = NSURLSession.sharedSession()
    request.HTTPMethod = "POST"
    var params = [
    "user" : ReconObject.user,
    "status" : ReconObject.status,
    "programGoal" : String(ReconObject.programGoal)
    ]
    var error: NSError?
    request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &error)
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")

    // API Redeem Post request
    var task = session.dataTaskWithRequest(request, completionHandler: { (data, response, err) -> Void in
        var conversionError: NSError?
        var jsonDictionary = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableLeaves, error: &conversionError) as? NSDictionary
    })
    task.resume()
}

编辑: 我在第二个函数中使用 fetchRequest 找到了解决它的方法(见上文)。这是唯一的解决方案吗?

我发现我做错了什么,因此不再需要我在上面的编辑中使用 fetchRequest 描述的变通解决方案。

我用 "as ReconciliationModel" 错误地定义了第二个函数 (= apiCheckCodes),而不是像这样:

func verifiyScannedCode(reconObject: ReconciliationModel) {...}

现在我可以使用新创建的 ManagedObject 作为参数调用此函数

verifiyScannedCode(reconTask)