2014-06-18 107 views
1

我正在試驗使用_id等下劃線返回一些字段的API。我無法在-xcdatamodel中映射此字段。該屬性必須以字母開頭。Xcode:模型添加實體

我也試圖把這個字段映射爲「id」,並在「用戶信息」會話中提供一個鍵/值,如id:_id但沒有成功。

你有解決這個問題的方法嗎?據我所知,有很多API都有下劃線的字段。

其他非下劃線字段映射沒有問題。

{ 
    "__v": 0, 
    "_avRateDelay": 5, 
    "_avRateRecommend": 5, 
    "_avRateStaff": 5, 
    "_id": "530f733df222bf594b190e0a10", 
    "_reviews": 1, 
    "active": 1, 
    "address": { 
     "city": "Little Rock", 
     "country": "USA", 
     "other": "", 
     "state": "AZ", 
     "street": "2701 E Roosevelt Rd", 
     "zip": "72206" 
    }, 
    "location": { 
     "lat": 34.721175, 
     "lng": -92.24168600000002 
    }, 
    "name": "Certainteed 69" 
} 
+0

您是否找到任何解決方案? –

+1

https://github.com/mutualmobile/MMRecord - >查看部分:備用屬性名稱; 這是如何處理這樣的領域! – Alex

回答

0

不要在Objective-C使用id_idid是保留字。由於許多服務器都喜歡使用它,所以我建議您編寫映射代碼,以便將其從服務器id映射到諸如identifier之類的東西。

由於您需要編寫代碼來解析字段,所以沒有困難去查找該密鑰並對其進行更改。您甚至可以將映射存儲在NSEntityDescription中,並設置代碼以查找其他映射並進行更改。通過這種方式,您可以將created_at等其他服務器類型的值更改爲它們的Objective-C對應項,如createdAt

該鍵/值可直接在模型編輯器中編輯,然後通過NSManagedObject上的-entity屬性進行訪問。

+1

我正在使用MMRecord框架來自動創建並填充從API返回的對象。無需手動映射。 – Alex

+2

我建議將這個添加到您的問題中,以免人們浪費寶貴的時間。 –