Другой способ сделать это - предоставить пользовательскую реализацию даты + (NSDate *).Вы можете использовать этот метод класса, используя JRSwizzle .Создайте небольшую категорию для NSDate:
static NSTimeInterval seconds = 1300000000;
@interface NSDate (Fixed)
+ (NSDate *)fixedDate;
@end
@implementation NSDate (Fixed)
+ (NSDate *)fixedDate
{
return [NSDate dateWithTimeIntervalSince1970:seconds];
}
@end
Затем в коде, где вы хотите установить фиксированную дату, сделайте следующее:
NSError *error;
[NSDate jr_swizzleClassMethod:@selector(date) withClassMethod:@selector(fixedDate) error:&error];
NSLog(@"Date:%@", [NSDate date]);
Журнал распечатывает это:
2011-09-01 11:35:27.844 tests[36597:10403] Date:2011-03-13 07:06:40 +0000