Я пишу IOS приложение, которое получает данные от пользователя, который я хочу, чтобы хранить в двух различных моделей данных с различными целями:Как передать функцию в новый объект объекта ManagedObject модели данных?
- во временной модели данных (= ReconciliationModel) для синхронизации с веб-сервером, как только устройство имеет доступное интернет-соединение и
- в функциональной модели данных (= 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()
}
Edit: я нашел путь вокруг него с fetchRequest во 2-й функции (см. Выше) Это единственное решение?