UItableview не обновляет обновленные данные из основных данных - PullRequest
3 голосов
/ 27 января 2012

У меня есть uitableview со списком выборки методов, который запускается каждые 5 секунд. когда в основных данных для этой записи есть обновленные данные, метод списка выборки не обновляет последние в своем массиве. таким образом, когда я перезагружаю данные, он всегда показывает «старую» запись.

Я вызываю этот метод с последующей перезагрузкой данных в uitableview.

это мой метод получения списка:

- (void) fetchList:(int) listNo{
// Define our table/entity to use
self.marketWatchListArray = nil;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Market_watch" inManagedObjectContext:context]; 

// Setup the fetch request
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity]; 

Mobile_TradingAppDelegate *appDelegate = (Mobile_TradingAppDelegate *)[[UIApplication sharedApplication] delegate];

NSPredicate *getList = [NSPredicate predicateWithFormat:@"(list_id == %d) AND (userID == %@)", listNo, appDelegate.user_number];
[request setPredicate:getList];

NSSortDescriptor *sortByName = [[NSSortDescriptor alloc] initWithKey:@"stockName" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortByName]];


// Fetch the records and handle an error
NSError *error;
NSMutableArray *mutableFetchResults = [[context executeFetchRequest:request error:&error] mutableCopy]; 


if (!mutableFetchResults) {
    // Handle the error.
    // This is a serious error and should advise the user to restart the application
} 

// Save our fetched data to an array
[self setMarketWatchListArray: mutableFetchResults];
[mutableFetchResults release];
[request release];

}

странно то, что таблица не обновляется до последней, когда таймер запускает fetchlist: 1. Когда я переключаюсь на fetchlist: 2, а затем обратно на fetchlist: 1, таблица обновляется самой последней.

У меня есть сегмент-регулятор для переключения между различными списками.

Ответы [ 2 ]

1 голос
/ 27 января 2012

Добавьте эту строку перед извлечением:

 [context setStalenessInterval: 4.0]; // allow objects to be stale for max of 4 seconds
0 голосов
/ 27 января 2012

В конце метода fetchList вы добавляете следующий код для обновления данных в UITableView:

[yourTableView reloadData];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...