ios - 检查 NSDate 对象是否在过去

标签 ios objective-c cocoa-touch nsdate

我想检查我拥有的 NSDate 对象是过去还是现在(如果不是 future )。

我已经试过了,但它不起作用:

-(void)checkIfMuted
{
    NSDate *muteOverDate=[[NSUserDefaults standardUserDefaults] objectForKey:@"muteOverDate"];

    if ([muteOverDate timeIntervalSinceNow]<0.0) {
        self.muteEnabled=YES;
        return;
    }
    self.muteEnabled=NO;
    NSLog(@"%@\n%@",[[NSDate date] description],[muteOverDate description]);
}

NSLog 打印: 2016-02-10 14:55:19 +0000 2016-02-10 15:54:32 +0000

知道为什么它不起作用吗?谢谢!

最佳答案

使用[NSDate compare:] :

NSDate *now = [NSDate date];
if ([now compare:muteOverDate] == NSOrderedAscending) {
    // muteOverDate is in the future
}

关于ios - 检查 NSDate 对象是否在过去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35318664/

相关文章:

ios - 使用AFNetworking,每次启动应用后,PHPSESSID都会更改

ios - iOS 9中的深层链接(通用链接)

iOS - APNS 如何在有效载荷中使用 loc_key

ios - 如何制作UILabel Objective c的弯曲文本

objective-c - 具有自定义背景的 UINavigationBar - 如何使 rightBarButton 可见

iphone - NSMutableDictionary 从不同的类访问

ios - 删除导航栏而不去掉颜色 Swift

ios - 如何在 cocos2d-iphone 中创建 sprite 后的静态路径?

ios - 确定使用了哪个共享扩展

ios - 使用 UISplitViewController 时是否可以显示真正的 Popover 而不是默认的滑出式菜单?