2013-10-01 35 views
0

我有一些數據存儲在objectA中,如objectA。當我打印對象A,它看起來像:在字典中處理null和NSDate

{ 
    employeeId = 1234; 
    startDate = (null); 
    endDate = 2013-10-01 04:59:59 +0000; 
} 

我將其存儲在一個字典如下:

NSDictionary *dict = @{@"employee_id" : objectA.employeeId, 
         @"start_date" : objectA.startDate, 
         @"end_date" : objectA.endDate}; 

我得到一個崩潰當我邁過字典代碼,因爲我想插入在字典中無對象。 Error : attempt to insert nil object from objects[1]

此外,這是將日期傳遞到字典的正確方法,因爲當我通過isValidJson檢查傳遞此字典時,應用程序再次崩潰。

我在這裏做錯了什麼嗎?如何在將數據傳遞到字典時處理空/零檢查?

回答

3

如果您的日期爲零,請不要將其包含在字典中的條目中(然後當您嘗試讀取該鍵時,您將返回零結果),或者使用[NSNull null]作爲佔位符對象(或者其他null您可能想要使用的佔位符常量 - 如特定的字符串@「thisismynullstringconstant」),然後當您從字典中讀取空值時,將其轉換爲零。

+2

'[NSNull null]'是正確的選項,「任何自定義字符串常量」方法*非常*脆弱。 – 2013-10-01 21:30:38

+0

完全同意。我只是說這是一個技術選擇,如果有一些業務邏輯。 – Joel

+0

是的,當然。另一種選擇是通過使用「CFMutableDictionaryRef」自定義回調並依靠免費橋接來實際**允許**字典包含「nil」值。 – 2013-10-01 21:32:52