使用cocoa objective c比较日期

Sha*_*kti 1 objective-c

我是否有必要编写以下方法来在if ....部分中调用它.

-(NSComparisonResult) compare:(NSDate *)expDate{}
Run Code Online (Sandbox Code Playgroud)

如果是,那么我必须如何以及在哪里编写此方法以便以下代码可以正常工作?

if (licenseDictionary == nil)
    return @"Not Registered";
else if([today compare:expDate] == NSOrderedAscending)
{   
    [gotoButton setEnabled:YES];
    return [licenseDictionary objectForKey:@"Name"];
}
else
    return @"License Expired";
Run Code Online (Sandbox Code Playgroud)

Bry*_*ore 10

也有earlierDate:laterDate:isEqualToDate:.

您可以在此处找到有关它们的文档.

所以类似于:

if ([today laterDate:expDate] == expDate)
Run Code Online (Sandbox Code Playgroud)

这是在浏览器中进行干编码,但我认为这就是你想要的.

编辑:我在上面修正了一个拼写错误,你不需要使用compare:. laterDate:earlierDate:处理比较并分别返回稍后或更早的对象.

所以上面的代码说明哪一个是今天,今天或expDate,如果expDate是后一个(指针比较应该在这里工作,我想,但如果没有尝试isEqualToDate:相反)那么它还没有过期,他们的许可证应该是有效.

我希望这有助于更有意义.