2011-09-07 2 views
1

NSDate를 XML에서 coreData로 저장하려고합니다. NSDate 값을 설정하는 방법을 모릅니다. 누군가 내게 거의 도움을 줄 수 없습니까? 내 엔티티 속성은 NSDate입니다. 아니면 그것은 문자열이어야하고 날짜를 문자열로 저장해야합니까 ?? 모든 응답과 도움을NSDate to CoreData 저장

[Sets setValue:[TBXML textForElement:xmlDate] forKey:@"beginDate"]; 

감사합니다,
brush51

+0

날짜를 문자열로 저장하면 상처를 입을 수 있습니다. 날짜를 NSDates로 유지하고 NSStrings, NSCalendar 날짜, 날짜 구성 요소와 같이 읽을 수있는 형식으로 변환합니다. 데이트를 날짜로 남겨두면 무료로 많은 것을 얻을 수 있습니다. – Abizern

+0

도움 주셔서 감사합니다. 나는 하나의 줄 (setValue)에 그것을 얻기 위해 코드를 결합했다 : ** [setValue : [myXMLdateReader dateFromString : [TBXML textForElement : xmlDate]] forKey : @ "beginDate"]; ** – brush51

답변

6

것은 의도적으로 난독 여부, 당신이 그것을 말하지 않는다, 그래서 추측거야 여부 :

  • [TBXML textForElement:xmlDate]가있는 NSString
  • beginDate 반환하는 개체 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"]; 
3

그것은 CoreDataNSDate를 추가 할 문제가 없습니다. XML 파일 NSStringNSDate 개체로 변환하기 만하면됩니다. 변환을 위해 NSString< ->NSDateNSDateFormatter 클래스를 사용할 수 있습니다.

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]; 

당신은 필요한 날짜 형식을 설정하고 사용자의 프로젝트에서이 코드를 사용할 수 있습니다 : 예에서 당신은 내가이 어떻게 볼 수 아래.