NSDictionary에서 값으로 NSDate를 키 및 일부 배열로 추가 할 수 있습니까?NSDictionary의 키로 NSDate
내가 디스크에 사전을 작성하는 모든 요구 사항 해달라고 -이 사람이 그것을 필요로하는 것처럼, 보관 또는 언 아카이빙을 : 내가있는 NSDate 키로 추가 할 이유 NSDictionary with NSDates as keys
그러나이 특히 내가 가져올 수 있도록이다 사전의 모든 키를 사용하고 범위 내에서 날짜를 가져 오는 것과 같은 계산을 수행합니다.
생성시 같은 날짜 값을 가진 두 객체가 동일한 메모리를 공유하는지 여부?
NSDate를 키로 사용할 수 있습니까? 또한이 가정에 직면하게 될 다른 문제는 무엇입니까?
감사합니다,
주권
편집 :
NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[dateComps setDay:1];
[dateComps setMonth:1];
[dateComps setYear:2012];
NSDate *date1 = [[NSCalendar currentCalendar] dateFromComponents:dateComps];
NSDate *date2 = [[NSCalendar currentCalendar] dateFromComponents:dateComps];
NSLog(@"Date 1 = %x, Date 2 = %x", date1, date2);
출력 :
Date 1 = 7945610, Date 2 = bd03610
그러나 않습니다 내 질문을 게시 한 후, 난 그냥 샘플 코드를 작성 NSDictio의 주요 비교 nary는이 2 개의 NSDate 객체를 다르게 해석합니까?
또 다른 편집 : 나는 NSDateFormatter를 사용하는있는 NSString에있는 NSDate 변환해야하는 경우 또한
가, 내가 직접 범위 내에서 날짜를 확인할 수 없습니다. 나는 다음과 같은 단계를 수행해야합니다 :
- 을
- 조건을 수행하고 다시
- 범위 내에서 날짜를 가져 사람들을 다시 변환 사전
- 에서 모든 키는 NSString 배열이있는 NSDate의 배열에 다시 변환 받기 날짜 배열 배열로
- 이제이 문자열 키를 사용하여 사전에서 값을 가져옵니다!
그래서 더 좋은 방법이 있습니까?
NSString은 (반드시) 같은 동작을하지 않습니다. 동일한 내용의 두 개의 다른 인스턴스를 가질 수 있습니다. 왜 NSDate 키를 사용하여 사전을 만들고 무슨 일이 일어나는지 보지 않겠습니까? –
동의, 당신이 말한 것에 근거하여 나의 질문을 업데이트하고이를 확인하기위한 샘플 프로그램을 작성했습니다. 그러나 문자열 상수는 메모리 위치를 공유합니다. –
형식 문자열에서'% x'을 사용하는 것은 객체 참조의 16 진수 주소를 출력하는 것입니다. 같은 날짜에 두 개의 서로 다른 대상입니다! – wcochran