是否可以从配置单元功能更新实体中的值? 如果数字大于另一个,我想更改entries属性的值。这是我到目前为止,但它崩溃了应用程序错误:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'[<Outgoing 0x7fbcf3141890> setValue:forUndefinedKey:]: the entity Outgoing
is not key value coding-compliant for the key "goingover".'
MY configurecell方法:
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {
Outgoing *outgoing = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = outgoing.costDescription;
cell.detailTextLabel.text = [NSString stringWithFormat:@"%.2f",[outgoing.amount floatValue]];
if (self.incomingTotal > self.outgoingTotal) {
[outgoing setValue:@"no" forKey:@"goingover"];
}
if ([outgoing.goingOver isEqualToString:@"yes"]) {
cell.backgroundColor = [UIColor redColor];
}else{
cell.backgroundColor = [UIColor lightGrayColor];
}
}
答案 0 :(得分:0)
我认为在Outgoing
类(应该是NSManagedObject
的子类)中,您没有使用此确切名称和类型goingover
正确定义属性NSString
。
此外,在configureCell
方法中更新核心数据实体是个坏主意。您应该将视图(单元格)和数据(托管对象)分开。此方法用于配置单元,而不是数据。相反,在加载任何单元格之前,请确保数据正确(根据您在if语句中定义的规则。
最后,不建议在字符串中存储布尔值(true或false)。您应该修改数据模型以使用布尔值。而且,诸如简单条件可能根本不需要持久化。只需使用if子句为单元格着色。