Как получить адрес объекта связанной сущности с помощью CoreData? - PullRequest
0 голосов
/ 20 мая 2010

Хорошо, после того, как я зашел в тупик, модифицируя существующий пример Apple для CoreData, я начал совершенно новый, создав собственный проект, и это работало нормально, ..... пока я не попытался получить доступ к связанной сущности.

Итак, вот что я сделал.

Я создал 2 сущности, одна из которых представляет собой подробную информацию о другой, поэтому существует отношение один-2-один.

Сущность # 1, Акции:

  • имя
  • значение
  • подробности -> отношение к сущности № 2

Entity # 2, StockDetails:

  • банк
  • опубликован
  • акции -> отношение к сущности # 1

Теперь я создал «Класс управляемых объектов» для обеих сущностей.

Затем я создал несколько строк, чтобы поместить в них данные

NSManagedObjectContext *context = [self managedObjectContext];

Stocks *stockinfo= [NSEntityDescription
    insertNewObjectForEntityForName:@"Stocks" 
    inManagedObjectContext:context];
stockinfo.name = @"Apple";
stockinfo.value = [NSNumber numberWithInt:200];


StockDetails *thestockdetails = [NSEntityDescription
    insertNewObjectForEntityForName:@"StockDetails" 
    inManagedObjectContext:context];

thestockdetails.bank = @"Bank of America";
thestockdetails.published = [NSDate date];
thestockdetails.stock = stocks_;

stockinfo.details = thestockdetails ;

NSError *error;
if (![context save:&error])
{
    NSLog(@"A Problem occured, couldn't save: %@", [error localizedDescription]);
}

Просто хочу упомянуть здесь, что я не получаю ошибку с этим.

Затем я поместил все в UITableViewController для предварительного просмотра и еще один для подробного просмотра. В предварительном просмотре отображается только информация о форме Entity # 1 (Stocks), и при ее выборе отображается подробный вид.

Теперь здесь я также отображаю информацию о форме Entity # 1 (Stocks), но я хочу показать также Entity # 2 (StockDetails).

Вот как я пытаюсь получить доступ к данным:

StockDetails *details_ = [stockinfo details];

И это дает мне EXC_BAD_ACCESS.

Так есть идеи, что я здесь не так делаю?

Спасибо

Ответы [ 2 ]

1 голос
/ 20 мая 2010

Нет ничего плохого в

StockDetails *details_ = [stockinfo details];

Вам следует посмотреть, если вы случайно не опубликуете детали или информацию о запасах. Поскольку у вас это есть в UITableViewController, объект может использоваться для каждой строки / раздела.

0 голосов
/ 20 мая 2010

Для отношений один-к-одному это должно работать:

StockDetails *details = [stockinfo valueForKey:@"details"];
...