Основные данные, проверьте существующие отношения «многие ко многим» - PullRequest
1 голос
/ 16 декабря 2010

Возникли проблемы с моим первым проектом Core Data ...

У меня есть две сущности в отношениях многие ко многим: Котировки << --- >> Котлы.

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

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

   - (void)managedObjectSelected:(NSManagedObject *)managedObject
    {

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    [request setEntity:[NSEntityDescription entityForName:@"Boiler"     inManagedObjectContext:managedObject.managedObjectContext]];    

    request.predicate = [NSPredicate predicateWithFormat:@"ANY myQuote = %@", quote];   
    NSError *error;
    NSUInteger count = [managedObject.managedObjectContext countForFetchRequest:request error:&error];

    if(count==0){
        [quote addMyBoilersObject:(Boiler*) managedObject];
    }
    else {
        [quote removeMyBoilersObject:(Boiler*) managedObject];
    }

    [managedObject.managedObjectContext save:&error];   

    } 

Любая помощь или указатели будут с благодарностью ...

1 Ответ

0 голосов
/ 16 декабря 2010

Один из способов добиться этого - использовать NSFetchedResultsController для заполнения вашего UITableView. Если вы сделаете это, то сможете переключать выделение в

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

    {
    // Get the Boiler that was selected.
    Boiler *boiler = (Experiment *) [fetchedResultsController objectAtIndexPath:indexPath];
    if (boiler)
        {
        if ([[self quote] boilers] containsObject:boiler])
            {
            // connected, so disconnect
            }
        else
            {
            // disconnected, so connect
            }

        }
    }

В любом случае, вы пробовали что-то подобное?

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