Как я могу получить доступ к фактическим значениям объекта в этом методе делегата fetchedResultsController?
Я хотел бы установить раздел пути индекса для строк, которые нужно удалить / изменить в соответствии со значениями объекта, так как таблица имеет несколько источников данных
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath
{
....get objects value, e.g. myEntity.city
}
Теперь я знаю, что объект всегда будет относиться к классу myEntity (по крайней мере, в конечном счете, я не уверен, что именно означает «anObject»), но, очевидно, компилятор жалуется, когда я хочу установить экземпляр myEntity * anEntity = anObject;
Мой обходной путь заключался в том, чтобы поместить данные для каждого раздела в массивы и выполнить всю работу в tableView: commitEditingStyle: forRowAtIndexPath: где я знаю, какой раздел был вызван, и мне просто нужно получить доступ к indexpath.row. Недостатком является то, что я должен перезагружать массивы после каждого изменения и не могу напрямую работать с fetchedResultsController.
РЕДАКТИРОВАТЬ: принятый ответ работает нормально, этот ярлык, похоже, тоже работает для моей цели:
NSString *aString = [anObject valueForKey:@"city"];
anObject
к нужному типу (Entity), а затем использовать его как обычный экземпляр этого объекта. Некоторым людям нравится добавлять утверждения вродеNSAssert([anObject isKindOfClass:[Entity class]],…)
или дажеNSAssert(anObject == The_One_Object_I_Think_I'm_Observing, …)
- person Aaron Golden   schedule 22.05.2013