Я совершенно нуб в target-c и целый день пытаюсь найти решение этой проблемы:
У меня есть две сущности (хранение и расходы).
В хранилище у меня есть атрибут «номер».
В «Расходах» у меня есть атрибут «число», а другой - «стоимость».
Обе сущности связаны с таблицами через привязки какао.
Я создал подклассы для обоих NSArrayControllers, чтобы я мог создать следующее действие:
1. умножьте Expenses.selection.number на Storage.selection.cost
Я сделал это с этим кодом в ArrayController расходов:
- (IBAction)submit:(id)sender {
NSNumber *price = [NSNumber numberWithFloat:[[self.selection valueForKey:@"storage.buy"] floatValue]];
NSNumber *insert = [NSNumber numberWithInt:[[self.selection valueForKey:@"number"] intValue]];
NSNumber *cost;
cost = [NSNumber numberWithFloat:[insert intValue] * [price floatValue]];
[self.selection setValue:cost forKey:@"cost"];
2. получить Storage.selection.number и добавить Expenses.selection.number
тут у меня проблема. В расходах ArrayController стараюсь:
NSNumber *stock = [NSNumber numberWithInt:[[self.selection valueForKey:@"storage.number"] intValue]];
sum = [NSNumber numberWithInt:[stock intValue] + [insert intValue]];
[self.selection setValue:sum forKey: @"storage.number"];
но я получаю: [<NSManagedObject 0x10013ad50> setValue:forUndefinedKey:]: the entity Expenses is not key value coding-compliant for the key "Storage.number".
Я также пытался создать метод в Storage ArrayController:
-(void)setNumber:(NSNumber*)number{
[self.selection setValue:number forKey: @"number"];
}
но когда я называю это как: [Storage seNumber: sum];
, возвращается:
+[Storage setNumber:]: unrecognized selector sent to class 0x100003430
Я также попробовал:
Storage *st = [[Storage alloc] init];
[st setNumber: sum];
[st release];
и хотя он не возвращает никакого сообщения об ошибке, он не работает.
есть идеи как решить эту проблему? Большое спасибо.