NSUserDefaults에 NSDate를 저장하는 두 가지 방법이 있습니다.
옵션 1-setObject : forKey :
// Set
NSDate *myDate = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:myDate forKey:@"myDateKey"];
// Get
NSDate *myDate = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"myDateKey"];
옵션 2-timeIntervalSince1970
// Set
NSDate *myDate = [NSDate date];
NSTimeInterval myDateTimeInterval = [myDate timeIntervalSince1970];
[[NSUserDefaults standardUserDefaults] setFloat:myDateTimeInterval forKey:@"myDateKey"];
// Get
NSTimeInterval myDateTimeInterval = [[NSUserDefaults standardUserDefaults] floatForKey:@"myDateKey"];
NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:myDateTimeInterval];
장점과 단점
옵션 1
이것은 작고 논리적 인 것 같습니다. 그러나 Date Formatter 버그로 인해 이것이 잘못 될 염려가 있습니다.
옵션 2
서투른 것 같습니다. NSTimeInterval에 "subsecond 정확도"가 있다고 말한 애플 문서에도 불구하고 한 번의 테스트에서 날짜를 다시 검색했을 때 48 초가 지났다.
요구 사항
어떤 방법을 선택하든 다음과 같아야합니다.
1 초 안에 정확합니다.
읽기 쉽고 신뢰할 수 있습니다.
내 질문
내가 잘못하고 있기 때문에 옵션 2의 부정확성이 있습니까?
이 두 가지 옵션 중 어느 것을 사용 하시겠습니까?
내가 모르는 다른 옵션이 있습니까?
감사!