我完全noob在objective-c和我想整天找到解决这个问题:
我有两个实体(存储和费用)。
在存储中我有一个属性“数字”。
的开支我有一个属性“数字”和另一个名为“成本”
两个实体通过可可绑定
两个NSArrayControllers我已经创建的子类,所以我可以创建以下动作挂表:
1。乘以Expenses.selection.number与Storage.selection.cost
我这个代码的费用ArrayController这样做:ObjC /核心数据。我如何从另一个NSArrayController更改实体的键值?
- (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并添加费用。 SEL ection.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".
我也试图创建存储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];
,虽然它不返回任何错误信息,这是行不通的。
任何想法如何解决这个问题?非常感谢。
OMG,所有这一次是那么容易??非常感谢你的帮助.. :) – Pr301 2010-02-12 07:26:50