2011-01-03 4 views
0

NSDictionary를 사용하여 작업을 정의하고 싶습니다. plist 파일에 저장하고 싶습니다. (지금까지는 Core Data를 사용하지 않았지만) 나는 각각있는 NSDate의 numberWithInt:numberWithBool: 방법을 사용하여, 숫자 또는 부울로 데이터 유형을 변경할 수 있습니다 initWithObjectsAndKeys:를 사용하는 경우 -NSDictionary 객체에 배열 중첩

: 두 지점에 붙어. 그래도 날짜를 입력하는 방법을 찾지 못하는 것 같습니다. 나는 그 문서에서 그런 것을 찾을 수 없었다.

- 두 번째 문제는 중첩 된 배열과 관련이 있습니다. 어떻게 사전에 추가 할 수 있습니까?

내가 달성하려고 시도한 것의 here에 그림을 업로드했습니다. 미리 감사드립니다.

답변

1

NSNumber+numberWithInt:+numberWithBool: 방법이 아닌 NSDate을 의미합니까? 이러한 메서드를 정의하는 것은 NSNumber입니다.

숫자를 날짜로 변환하려면 숫자가 실제로 무엇인지에 따라 다릅니다. 유닉스 타임 스탬프라면 [NSDate dateWithTimeIntervalSince1970:theTimestampInSeconds]. 사전에 NSArray 객체를 추가로

:

[yourDictionary setObject:yourArray forKey:@"SomeKey"]; 

당신은 당신의 질문은 매우 명확하지 않다 당신이 더 도움이 필요하면 일부 코드를 게시해야합니다.

+0

예, 죄송합니다. NSNumber를 의미했습니다. 중첩 배열에 관해서는, 나는 당신이 제안한 방식대로 그것을 다시 시도했다. 그것은 전에 트릭을하는 것처럼 보이지 않았습니다. – antalkerekes

+0

배열이 아직 초기화되지 않은 경우 (예 : 초기화하지 않은 경우) 사전에 nil을 저장할 수 없으므로 런타임 오류가 발생합니다. 그냥 생각. – d11wtq

-1

plist는 날짜 형식을 선택하고 날짜 형식을 사용하여 저장해야하므로 NSDate에 ploug 할 수 있습니다. 당신은 또한 numberWithInt:를 사용할 수있는 날짜와 타임 스탬프를 얻을 수있는 NSDate의 timeIntervalSince1970 방법에 대한

[NSDictionary dictionaryWithObjectsAndKeys:@"1", @"One", @"2", @"Two"]; 
+0

두 번째 예는 배열이 아니며 실제로 충돌합니다. –

1

:

[plist setObject:theDate forKey:@"theDateKey"]; 

가 사전에 배열을 저장하려면, 같은 것을 사용합니다. Theres는 또한 해당 Timestamp의 생성자입니다.

중첩 된 배열의 경우 단순히 NSArray 객체를 Dictonary에 추가 할 수 있습니다.