私は奇妙な問題に遭遇していますこれが私のシナリオです、私はと呼ばれる機能を持っています
-(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 を使用します。しかし、他のView Controllerに移動して戻ってくると、このメソッドが常に呼び出され、ナビゲーション速度が妨げられます.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;
}