2013-10-29 85 views
1

我使用RestKit 0.10的iOS RestKit合併數據

我有一個實體名爲:消息

消息有大約15屬性。

{ 
    user_id: "507deeaedc1362a42bd2e4ba", 
    created_at: "2013-10-28T22:14:12.676Z", 
    body: "some message", 
    numberFollowers: 10, 
    isHot: true, 
    updated_at: "2013-10-28T22:14:12.676Z", 
    _id: "526ee1b1ebf44af911010889" 
    .....etc etc 
} 

我做了一個GET請求來獲取消息,一切正常。

比方說,我想進行一次GET請求,以獲取15個屬性中的2個屬性的更新,因爲它們會不斷變化。我不想返回完整的消息負載,所以我只想返回2個屬性。

{ 
    message_id: "526ee1b1ebf44af911010889", 
    numberFollowers: 20, 
    isHot: false, 
} 

我該如何去做,並將數據合併到已存儲在Core Data中的消息中?這可能嗎?有沒有例子?

謝謝你

+1

我相信你必須傳遞一些參數給你的請求,並讓你的服務器限制返回的數據。 – Firo

+0

我不關心我將如何獲取數據。我需要知道如何將新數據合併到現有的消息記錄中。 – Jesse

回答

0

在你的映射上,你需要教RestKit如何找到實體的現有實例。你有_id這看起來像一個獨特的身份,因此可以使用。要執行此操作,請使用映射的primaryKeyAttribute

mapping.primaryKeyAttribute = @"_id" 

(或任何_id被映射到實體中)。

+0

所以你說如果只有2個屬性的響應具有相同的_id,那麼它應該只是更新並保留消息中的其他數據?我已經有了primaryKeyAttribute集。但現在的響應方式是將message_id分開指定。 – Jesse

+0

如果你設置了'primaryKeyAttribute',是的。但是,響應確實需要包含該身份信息。 – Wain

+0

將2個不同的源鍵映射到相同的目標鍵將不起作用(在單個映射中)。你應該在兩個回覆中發送相同的密鑰名稱... – Wain