Как отразить добавленные записи на моем UITableView? - PullRequest
0 голосов
/ 11 января 2012

Я использую основные данные вместе с раскадровками. У меня 1 UITableView и 1 UIViewController. Когда я добавляю entires к моей сущности, она добавляется в мой контекст (базу данных), но не отражается в табличном представлении, когда я возвращаюсь. Я должен снова запустить свое приложение, и тогда я вижу свою добавленную запись. Вот как я добавляю новые объекты:

- (void)viewDidLoad
{
    [super viewDidLoad];

    myAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    self.managedObjectContext = myAppDelegate.sharedManagedObjectContext;

    NSFetchRequest *personListRequest = [[NSFetchRequest alloc] init];

    NSEntityDescription *personEntity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:managedObjectContext];

    [personListRequest setEntity:personEntity];

    NSError *personListRequestError;

    NSArray *personsList = [self.managedObjectContext executeFetchRequest:personListRequest error:&personListRequestError];


    for(Person *thisPerson in personsList ) {
        NSLog(@"First name is %@", thisPerson.firstName);
        NSLog(@"First name is %@", thisPerson.lastName);
    }    
    NSLog(@"the contents of array are %@",personsList);
    personArray = [[NSMutableArray alloc] initWithArray:personsList];
}

Я хочу, чтобы мои записи обновлялись в моей таблице, когда я их добавляю, я не хочу снова запускать свое приложение, чтобы увидеть их.

Ответы [ 2 ]

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

Вы используете контроллер извлеченных результатов для эффективного управления результатами, возвращенными из запроса извлечения Core Data, чтобы предоставить данные для объекта UITableView.

Хотя табличные представления можно использовать несколькими способами, этот объект предназначен в первую очередь для того, чтобы помочь вам с представлением основного списка. UITableView ожидает, что его источник данных предоставит ячейки в виде массива разделов, состоящих из строк. Вы настраиваете экземпляр этого класса, используя запрос на выборку, который указывает сущность, массив, содержащий как минимум один порядок сортировки, и, необязательно, предикат фильтра. NSFetchedResultsController эффективно анализирует результат запроса на выборку и вычисляет всю информацию о разделах в наборе результатов и для индекса. для более подробной информации Apple DOC и другой образец

0 голосов
/ 11 января 2012

Вы должны указать табличному представлению перезагрузить его данные:

[tableView reloadData];
...