2016-04-14 27 views
0

我是新來的swift,並試圖將一些CoreData上傳到Azure。我知道該應用程序的CoreData部分工作正常,並且天藍色的上傳工作正常。我已經獨立測試了它們。將fetchedEvent發送到Azure時遇到問題。我認爲這與被迫下山鑄造有關。如何將獲取的CoreData轉換爲上傳到Azure移動服務?

這裏是我的代碼:

@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)") 
    } 
} 

我應了下來鑄造fetchedEvents爲除NSManagedObject其他的東西嗎?

回答

0

如果您希望將Core Data用於移動服務,則應考慮直接使用Core Data的脫機同步功能。請參閱Get Started with Offline Data Sync in Mobile Services

否則,您將不得不在詞典和核心數據對象之間進行轉換,這會導致更多的頭痛。在MSTable.insert的情況下,您需要傳遞一個NSDictionary,而不是NSManagedObject。見https://azure.microsoft.com/en-us/documentation/articles/mobile-services-ios-how-to-use-client-library/#inserting

相關問題