Нераспознанный селектор отправлен экземпляру при попытке вставки в CoreData

Я пытаюсь сохранить некоторые данные в CoreData, но получаю сообщение об ошибке:

Менеджер ресторана[5971:60b] * Завершение работы приложения из-за необработанного исключения "NSInvalidArgumentException", причина: "-[ProdusComandat setIdProdus:]: нераспознанный селектор отправлен экземпляру 0x90b8270"

Может кто-нибудь сказать мне, почему?

 SessionController* sessionController = [[SessionController alloc]init];

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"ComenziActive"];// baza de date
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"numeClient == %@",sessionController.getSessionUsername]];

NSError *err;
NSUInteger count = [self.managedObjectContext countForFetchRequest:fetchRequest error:&err];

NSArray *listaElementeBD = [[NSArray alloc]init];


if(count <= 0)
{
    NSEntityDescription *entitydesc;
    entitydesc = [NSEntityDescription entityForName:@"ComenziActive" inManagedObjectContext:self.managedObjectContext];

    ComenziActive *comanda = [NSEntityDescription insertNewObjectForEntityForName:@"ComenziActive" inManagedObjectContext:self.managedObjectContext];

    [comanda setValue:sessionController.getSessionUsername forKey:@"numeClient"];

    ProdusComandat * produsComandat = [[ProdusComandat alloc]init];
    produsComandat.idProdus = [[[(Produs*)produsdb objectID] URIRepresentation] absoluteString];
    produsComandat.cantitateComandata = [NSNumber numberWithInteger:[self.cantitateTextField.text integerValue]];

    [comanda addProduseComandateObject:produsComandat];

}
else
{

    NSError *error;
    listaElementeBD = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
    ComenziActive *comanda = [listaElementeBD objectAtIndex: 0];

    NSArray *produse = comanda.produseComandate.allObjects;
    BOOL found =NO;
    for(int i=0;i<[produse count];i++)
    {
        ProdusComandat *p =[[ProdusComandat alloc]init];
        p= produse[i];
        if ([p.idProdus isEqualToString:[[[(Produs*)produsdb objectID] URIRepresentation] absoluteString]]) {
            p.cantitateComandata = [NSNumber numberWithInteger:[p.cantitateComandata integerValue] + [self.cantitateTextField.text integerValue]];
            found = YES;
            break;
        }
    }
    if (!found) {
        ProdusComandat * produsComandat = [[ProdusComandat alloc]init];
        produsComandat.idProdus = [[[(Produs*)produsdb objectID] URIRepresentation] absoluteString];
        produsComandat.cantitateComandata = [NSNumber numberWithInteger:[self.cantitateTextField.text integerValue]];

        [comanda addProduseComandateObject:produsComandat];
    }


    NSLog(@"============================");
    NSLog(@"%@", comanda.produseComandate );
}


NSError *error;
[self.managedObjectContext save:&error];

Я пытаюсь получить данные из объекта CoreData Produs и скопировать его objectID в объект ProduseComandate. который имеет это отношение ComenziActive‹----->>ProduseComandate (отношение один ко многим), если этот objectID не существует в таблице, но если он существует, я хочу добавить к значению cantiate некоторое значение, которое я беру из TextField.


person Bogdan    schedule 04.05.2014    source источник
comment
Покажите сущность и определение класса. Как определяется idProdus?   -  person Wain    schedule 04.05.2014
comment
Показать также класс ProductComandat   -  person Matteo Gobbi    schedule 05.05.2014


Ответы (1)


Проблема заключалась в том, что мне нужно было объявить это так:

ProdusComandat *produsComandat = [[ProdusComandat alloc]initWithEntity:entity insertIntoManagedObjectContext:self.managedObjectContext];
person Bogdan    schedule 05.05.2014