2014-12-04 172 views
0

我正在使用RestKit將圖像上載到我的後端。不幸的是,在成功上傳之後,響應沒有被映射到請求中使用的對象。RestKit在上傳之後創建新對象而不是更新現有對象

let imageFile = RKManagedObjectStore.defaultStore().mainQueueManagedObjectContext.insertNewObjectForEntityForName("ImageFile") as ImageFile 
let request = RKObjectManager.sharedManager().multipartFormRequestWithObject(imageFile, method: .POST, path: "/api/imageFile/", parameters:nil) { (formData) -> Void in 
     formData.appendPartWithFileData(imageFileEntity.data, name: "file", fileName: "image.jpg", mimeType: "image/jpeg") 
    } 

    let operation = RKObjectManager.sharedManager().managedObjectRequestOperationWithRequest(request, managedObjectContext: RKManagedObjectStore.defaultStore().mainQueueManagedObjectContext, success: { (operation, result) -> Void in 
     println("result: \(result)") 
     println("imageFileID: \(imageFile.imageFileID)") 

     }) { (operation, error) -> Void in 

    } 
    RKObjectManager.sharedManager().enqueueObjectRequestOperation(operation) 

如果我打印出我的imageFile對象操作成功之後,似乎沒有映射應用到它:

<ImageFile: 0x7fe079821f20> (entity: ImageFile; id: 0x7fe079821fc0 <x-coredata:///ImageFile/tC23CCB0E-7CD8-4722-B075-3845B32EF4194> ; data: <fault>) 

但是如果我打印出結果也顯示了另一個ImageFile對象確實包含映射。

"<null>" = "<ImageFile: 0x7ff2f412aaf0> (entity: ImageFile; id: 0xd000000000140000 <x-coredata://53E33858-A003-4331-A28D-56EC7C323AE1/ImageFile/p5> ; data: {\n imageFileID = 25;\n})"; 

我想,因爲我使用RKObjectManager映射應適用於我的請求,而不是正在創建一個新使用的對象。我究竟做錯了什麼?

回答

0

我能夠通過設置RKManagedObjectRequestOperationtargetObject屬性來解決問題,以imageFile

operation.targetObject = imageFile 
相關問題