Я пытаюсь сохранить некоторые данные в 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.
idProdus
? - person Wain   schedule 04.05.2014