0

是否可以从配置单元功能更新实体中的值?如果一个数字大于另一个,我想更改条目属性的值。这是我到目前为止所拥有的,但它使应用程序崩溃并出现错误:

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".'

我的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];

    }

}
4

1 回答 1

0

我认为在您的Outgoing类中,应该是 的子类NSManagedObject,您没有正确定义goingover具有这个确切名称和类型的属性NSString

此外,在方法中更新核心数据实体是一个坏主意configureCell。您应该将视图(单元格)和数据(托管对象)分开。此方法用于配置单元格,而不是数据。相反,在加载任何单元格之前,请确保数据正确(根据您在 if 语句中定义的规则。

最后,不建议在字符串中存储布尔值(true 或 false)。您应该修改数据模型以使用布尔值。此外,诸如简单的条件可能根本不需要持久化。只需使用 if 子句为您的单元格着色。

于 2015-05-03T23:01:37.907 回答