Thr*_*dyn 12 xcode objective-c nsdate nsnumber
我试图绕过一个日期验证,拒绝接受明天之前的任何事情.
到目前为止我有这个:
NSDate *dateY = [NSDate dateWithTimeIntervalSinceNow:-86400];
// Negative one day, in seconds (-60*60*24)
NSLog(@"%@", [NSDate date]);
// "yyyy-MM-dd HH:mm:ss Z", accurate assuming Z = +0000
NSLog(@"%@", dateY);
// "yyyy-MM-dd HH:mm:ss Z", same accuracy (minus one day)
Run Code Online (Sandbox Code Playgroud)
这很好,但dateY不是NSNumber.我需要一个NSNumber比较,但我找不到任何有用的东西.(我甚至不知道怎么的NSNumber可以2011-04-14 13:22:29 +0000,反正...)
我可以NSDateFormatter用来将一个转换NSDate为一个NSString,所以如果有可能取出那个字符串并将其转换为所需的NSNumber(而不是直接转换NSDate为一个NSNumber,我似乎无法找到帮助),那就是没事的.
- (BOOL)validateDueDate:(id *)ioValue error:(NSError **)outError {
NSDate *dateY = [NSDate dateWithTimeIntervalSinceNow:-86400];
NSNumber *tis1970 = [NSNumber numberWithDouble:[dateY timeIntervalSince1970]];
NSLog(@"NSNumber From Date : %@", tis1970);
NSLog(@"Date From NSNumber : %@", [NSDate dateWithTimeIntervalSince1970:[tis1970 doubleValue]]);
// Due dates in the past are not valid
// Enforced that a due date has to be >= today's date
if ([*ioValue compare:[NSDate date]] == NSOrderedAscending) {
if (outError != NULL) {
NSString *errorStr = [[[NSString alloc] initWithString:@"Due date must be today or later."] autorelease];
NSDictionary *userInfoDictionary = [NSDictionary dictionaryWithObject:errorStr forKey:@"ErrorString"];
NSError *error = [[[NSError alloc]
initWithDomain:TASKS_ERROR_DOMAIN
code:DUEDATE_VALIDATION_ERROR_CODE
userInfo:userInfoDictionary] autorelease];
*outError = error;
}
return NO;
} else {
return YES;
}
}
Run Code Online (Sandbox Code Playgroud)
目前,用户不允许在明天之前选择日期.errorStr所在.在今天比以前更有意义作为拒绝保存日期的规则,所以我一直在与这个事情作斗争,让我用昨天代替今天,而不是更深入地看.
编辑:使用NSOrderedSame允许选择任何日期而不会出现错误.那不行.
odr*_*drm 26
您可以将转换NSDate成NSNumber这样:
NSDate *aDate = [NSDate date];
NSNumber *secondsSinceRefDate = [NSNumber numberWithDouble:[aDate timeIntervalSinceReferenceDate]];
Run Code Online (Sandbox Code Playgroud)
并转换回来:
aDate = [NSDate dateWithTimeIntervalSinceReferenceDate:[NSNumber doubleValue]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10173 次 |
| 最近记录: |