Обратные вызовы NSFetchedResultscontroller не получены в классе NSObject - PullRequest
0 голосов
/ 24 сентября 2010

У меня есть класс,

@ interface OnlineDataModel: TTModel {...

Где TTModel,

@ interface TTModel: NSObject {...

Класс OnlineDataModel является Singleton, поэтому его объект никогда не истекает.Я выполняю операцию Fetch в этом классе и устанавливаю делегат fetchedResultsController самостоятельно.Теперь я изменяю объекты, извлеченные после постоянной задержки, чтобы просто проверить, что он возвращает обратные вызовы, объекты изменяются и изменения также отражаются в базе данных, но класс OnlineDataModel не получает обратные вызовы, так что мой пользовательский интерфейс может обновляться.

Я сильно застрял в этом, поэтому любая помощь будет высоко оценена.

Заранее спасибо :))

Ответы [ 2 ]

1 голос
/ 24 сентября 2010

Как / Где вы устанавливаете делегата? Если вы устанавливаете для делегата значение self в методе класса (с + перед его именем вместо - ... like + (void) doSomething), делегату присваивается объект класса, а не объект экземпляра.

для меня это работает:

@implementation MyViewController

...

- (NSFetchedResultsController *) fetchedResultsController
{
...
    [fetchedResultsController setDelegate: self];
...
    return fetchedResultsController;
}

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
{
    NSLog(@"data changed");
}

...

@end

Пожалуйста, оставьте свой код создания контроллера:)

0 голосов
/ 24 сентября 2010

Прежде чем опубликовать код, у меня есть сомнения по поводу чего-то, сначала посмотрите следующий код

Book *book = [[[[CDBManager sharedManager] fetchedResultsController] fetchedObjects] objectAtIndex:index];
[book setTitle:@"New Title"];
[[[DatabaseContext sharedObject] managedObjectContext] save:nil];

Является ли этот код причиной любого события из FetchedResultController, я думаю, fetchedObjects возвращает копию массива. если это копия, то, безусловно, никакой обратный вызов никогда не будет получен. Но это массив живых объектов, чем что-то есть в моем коде .. Что вы скажете по этому поводу?

...