2016-04-14 3 views
0

Ich bin neu zu schnell und versuche, einige CoreData nach Azure zu laden. Ich weiß, dass der CoreData-Teil der App korrekt funktioniert und dass der Azure-Upload korrekt funktioniert. Ich habe beide unabhängig voneinander getestet. Ich habe Probleme, mein abgerufenes Ereignis an Azure zu senden. Ich denke, es hängt mit dem erzwungenen Niederwerfen zusammen.Wie kann ich abgerufene CoreData-Dateien zum Hochladen auf Azure Mobile Services übertragen?

Hier ist mein Code:

@IBAction func sync(sender: UIButton) { 
    let client = AppDelegate().client //reference to the Azure client 
    let itemTable:MSTable = client.tableWithName("Events")//create a local Azure table to use in upload 

    let fetchRequest = NSFetchRequest(entityName: "Events")//create a new fetch request that fetches all information in Events 
    do { 
     let fetchedEvents = try self.managedObjectContext.executeFetchRequest(fetchRequest) as! [NSManagedObject] 
     let itemToInsert:NSDictionary = ["buttonColor": fetchedEvents.buttonColor, "eventTime": fetchedEvents.eventTime] //need to insert the buttonColor and eventTime atributes from the fetched CoreData 
     itemTable.insert(itemToInsert as! [NSObject : AnyObject], //send itemToInsert to azure 
         completion: { 
          insertedItem, error in 
          if (error != nil){ 
           print("error: \(error)") 
          } 
          else{ 
           print("Success!") 
          } 
      } 
     ) 
    } catch let error as NSError { 
     print("Could not fetch \(error), \(error.userInfo)") 
    } 
} 

Soll ich nach unten sein, die fetchedEvents als etwas anderes als ein NSManagedObject Gießen?

Antwort

0

Wenn Sie Core Data mit Mobile Services verwenden möchten, sollten Sie die Offline-Synchronisierungsfunktion in Betracht ziehen, die Core Data direkt verwendet. Siehe Get Started with Offline Data Sync in Mobile Services.

Andernfalls müssen Sie zwischen Wörterbüchern und Core Data-Objekten konvertieren, was viel mehr Kopfschmerzen verursacht. Im Fall von MSTable.insert müssen Sie ein NSDictionary übergeben, nicht NSManagedObject. Siehe https://azure.microsoft.com/en-us/documentation/articles/mobile-services-ios-how-to-use-client-library/#inserting.

Verwandte Themen