what is wrong with this code?
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
}
I need to show this image in the table if the match is running or for 90 min
I don't know what object
is that you call valueForKey:
on is but presuming it returns an NSDate
object, your additional call to description
will assign an NSString
(the return value of description) to matchDateCD
. That is not what you want to do.
This is what you want to do:
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
}
Use the dateByAddingTimeInterval method of NSDate to add the number of seconds to the time.
NSDate* newDate = [oldDate dateByAddingTimeInterval:90];
You can then use either NSDateFormatter or NSDateComponents to get the new time back out again.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With