1
我有一個例程,用於比較網站上最後一次更新記錄的時間,以及在iPad上保存在CoreData
中的相同記錄。這裏,obsLastUpdated是CoreData集中的一個字段,類型爲Date
。什麼格式是CoreData中的日期 - 日期還是字符串?
從CoreData
將數據讀入一個NSDate:
NSDate *iPadDate = [[self.recordDetails objectAtIndex:0] obsLastUpdated]; //gets the date from CoreData
我得到這樣的警告:
不兼容的指針類型初始化 '的NSDate *' 與表達式類型的 '的NSString *'
這只是一個警告,但一切仍然有效。如果我試着比較這NSDate
iPadDate與另一NSDate
沒有錯誤,一切正常。但我想深入警告的底部。
如果我從CoreData
讀取一個字符串並將其轉換爲NSDate
我似乎無法得到格式正確和應用程序崩潰。我曾嘗試:
NSString *iPadDateStr = [[self.recordDetails objectAtIndex:0] obsLastUpdated];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *iPadDate = [dateFormat dateFromString: iPadDateStr];
我意識到CoreData
不存儲日期爲NSDate
但它存儲究竟如何?如何周圍的警告得到什麼?
CoreData實體:
UPDATE:
錯誤是在obsLastUpdated被宣佈爲一個NSString類。改爲NSDate,一切都很好。
請出示核心數據模型實體的屏幕截圖。 – Fogmeister
然後,您已經創建了核心數據模型以擁有一個字符串。不是日期。你可以顯示核心數據模式的截圖嗎?並且還包含目標代碼。 – Fogmeister
和類的代碼?有些事情是錯的。告訴我們什麼是錯的。不是什麼是對的。 :-)當你將一個屬性設置爲核心數據中的日期時,它返回一個NSDate。你確定你已經做了一個乾淨的構建?你最近有沒有改變它從字符串到日期? – Fogmeister