Вы можете использовать системный метод класса NSDate для сравнения с текущим временем
- (NSTimeInterval)timeIntervalSinceNow
Возвращаемое значение - это интервал между получателем и текущей датой и временем. Если получатель раньше текущей даты и времени, возвращаемое значение является отрицательным.
Так что правильный код будет
- (BOOL) hasExpired:(NSDate*)myDate
{
return [myDate timeIntervalSinceNow] < 0.f;
}
Или, если вы хотите сравнить 2 даты, используйте
- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate