我遇到了一个奇怪的问题这是我的场景,我有一个名为
-(void)fetch
{
for (Dog *aDog in allDogs)
{
if([aDog getNumberOfDaysFromToday]>=0)
{
[filteredArray addObject:aDog];
}
else
{
[tempArr addObject:aDog];
}
}
[filteredArray addObjectsFromArray:tempArr];
}
上述方法计算 numberOfDaysFromToday 并返回一个整数值。
我总是需要计算 numberOfDaysFromToday 以便数据始终是最新的。
我有一个 UITableView 显示当前数据。
现在的问题:
因为我需要经常调用 fetch 方法,所以我使用 viewWillAppear。但是当我导航到其他视图控制器并返回时,总是调用此方法,因此我的导航速度受到阻碍。由于 fetch 方法,导航返回大约需要 4-5 秒。我想知道的是,有什么办法可以加快 getNumberOfDaysFromToday 函数的速度吗?或者有人可以告诉我其他的解决方法吗?
getNumberOfDaysToday:
-(int)getNumberOfDaysFromToday{
// Take the month and day of month of the event date
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd.MM"];
NSString *eventDateString = [dateFormatter stringFromDate:self.eventDate];
NSDate *newEventDate = [dateFormatter dateFromString:eventDateString];
NSString *currentDateString = [dateFormatter stringFromDate:[NSDate date]];
NSDate *newCurrentDate = [dateFormatter dateFromString:currentDateString];
NSDateComponents *components;
NSInteger days;
components = [[NSCalendar currentCalendar] components: NSDayCalendarUnit
fromDate: newCurrentDate toDate: newEventDate options: 0];
days = [components day];
return days;
}