我想將NSDate從XML保存到coreData。 我不知道如何爲NSDate設置值。有人能幫我一點嗎? 我的實體屬性是NSDate。或者它應該是一個字符串並將日期保存爲字符串?保存NSDate到CoreData
[Sets setValue:[TBXML textForElement:xmlDate] forKey:@"beginDate"];
感謝任何迴應和幫助,
brush51
我想將NSDate從XML保存到coreData。 我不知道如何爲NSDate設置值。有人能幫我一點嗎? 我的實體屬性是NSDate。或者它應該是一個字符串並將日期保存爲字符串?保存NSDate到CoreData
[Sets setValue:[TBXML textForElement:xmlDate] forKey:@"beginDate"];
感謝任何迴應和幫助,
brush51
無論你是故意混淆或沒有,你不說出來,所以我要去猜測:
[TBXML textForElement:xmlDate]
返回一個NSStringbeginDate
是實體Sets
在這種情況下,您的代碼顯然不正確:您必須將NSDate
的實例傳遞給setValue:forKey:
。您的代碼如下所示:
NSDateFormatter *myXMLdateReader = [[NSDateFormatter alloc] init];
[myXMLdateReader setDateFormat:@"yyyy-MM-dd"]; // for example
NSDate *itsDate = [myXMLdateReader dateFromString:[TBXML textForElement:xmlDate]];
[myXMLdateReader release];
[Sets setValue:itsDate forKey:@"beginDate"];
這是沒有問題的補充NSDate
到CoreData
。您所需要做的就是將NSString
從XML文件轉換爲NSDate
對象。用於轉換NSString
< - >NSDate
您可以使用NSDateFormatter
類。在下面的例子,你可以看到我是如何做到這一點:
NSDateFormatter *parseFormatter = [[[NSDateFormatter alloc] init] autorelease];
[parseFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"US"] autorelease]];
[parseFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSString *dateString = @"Mon, 02 May 2011 21:12:56 +0000";
NSDate *dateToAdd = [parser.parseFormatter dateFromString:dateString];
您可以設置要緊的日期格式,並在項目中使用此代碼。
將日期保存爲字符串會讓您處於受傷的世界。將日期保留爲NSDates並將它們轉換爲可讀格式,無論是NSStrings,NSCalendar日期還是日期組件。只要把日期作爲約會,你就可以免費得到這麼多。 – Abizern
非常感謝您的幫助。我已經將代碼組合起來,將它放在一行中(只是爲了setValue):** [Sets setValue:[myXMLdateReader dateFromString:[TBXML textForElement:xmlDate]] forKey:@「beginDate」]; ** – brush51