这段代码有什么问题?
NSDate *matchDateCD = [[object valueForKey:@"matchDate"] description]; // from coredata NSDate
NSDate *add90Min = [matchDateCD dateByAddingTimeInterval:5400];
if ( matchDateCD >=[NSDate date] || add90Min <= matchDateCD )
{
cell.imageView.image = [UIImage imageNamed: @"r.gif"];//Show image in the table
}
Run Code Online (Sandbox Code Playgroud)
如果比赛正在进行或90分钟,我需要在表格中显示此图像
NSP*_*mer 41
我不知道object你调用valueForKey:的是什么,但假设它返回一个NSDate对象,你的额外调用description将指定一个NSString(描述的返回值)matchDateCD.那不是你想要做的.
这是你想要做的:
NSDate *matchDateCD = [object valueForKey:@"matchDate"];
NSDate *add90Min = [matchDateCD dateByAddingTimeInterval:(90*60)]; // compiler will precompute this to be 5400, but indicating the breakdown is clearer
if ( [matchDateCD earlierDate:[NSDate date]] != matchDateCD ||
[add90Min laterDate:matchDateCD] == add90Min )
{
cell.imageView.image = [UIImage imageNamed: @"r.gif"];//Show image in the table
}
Run Code Online (Sandbox Code Playgroud)
使用NSDate的dateByAddingTimeInterval方法添加到该时间的秒数.
NSDate* newDate = [oldDate dateByAddingTimeInterval:90];
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用NSDateFormatter或NSDateComponents重新获得新的时间.
您还可以设置小时、年、月和秒等
NSDateComponents *components= [[NSDateComponents alloc] init];
[components setMinute:30];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *myNewDate=[calendar dateByAddingComponents:components toDate:[NSDate date] options:0];
Run Code Online (Sandbox Code Playgroud)