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の属性を適切に定義していないと思います。goingoverNSString

また、メソッド内のコア データ エンティティを更新することはお勧めできませんconfigureCell。ビュー (セル) とデータ (管理対象オブジェクト) を分離する必要があります。このメソッドは、データではなく、セルを構成するためのものです。代わりに、セルをロードする前に、(if ステートメントで定義したルールに従って) データが正しいことを確認してください。

最後に、ブール値 (true または false) を文字列に格納することはお勧めできません。ブール値を使用するようにデータ モデルを変更する必要があります。また、単純な条件などは、おそらくまったく永続化する必要はありません。if 句を使用してセルに色を付けるだけです。

于 2015-05-03T23:01:37.907 に答える