1
    if (self.temp) 
    {
    NSDateFormatter *form = [[NSDateFormatter alloc] init];
    [form setDateFormat:@"dd/MM/yyyy"];
    dt1 = [form stringFromDate:[datePicker date]];
    [self.temp setValue:dt1 forKey:@"dateOne"];
    }
    else
    {
    NSDateFormatter *form = [[NSDateFormatter alloc] init];
    [form setDateFormat:@"dd/MM/yyyy"];``
    dt1 = [form stringFromDate:[datePicker date]];
    NSManagedObject *newGoalText = [NSEntityDescription insertNewObjectForEntityForName:@"Goal" inManagedObjectContext:context];
    [newGoalText setValue:dt1 forKey:@"dateOne"];
    }    

これは、日付を文字列としてコア データ モデルに保存するために作成したコードです。そして、私は単一のエンティティを作成しました。目標「目標」には、属性「goalText(String)」、「dateStr(string)」、および「dateOne(String)」が含まれています。データが編集される場合、if 条件が機能し、それ以外の場合は else 条件が機能します。それが流れです。したがって、このコードを実行すると、「[ setValue:forUndefinedKey:]: エンティティの目標は、キー「dateOne」のコーディングに準拠したキー値ではありません」というエラーが表示されます。ただし、最初の 2 つの属性は正常に保存され、取得されます。もう 1 つ、3 番目の属性は別のビューから設定されます。

この他の質問の回答に従って Mac を再起動しましたが、結果が得られません。

4

3 に答える 3

2

解決しました。ある段階で name.xcdatamodel を削除し、同じ名前で新しいモデルを作成しました。しかし、古いものは私のプロジェクトに残っています。その古いものを削除すると、私の問題は解決しました。ご協力いただきありがとうございます

于 2013-02-07T06:24:04.413 に答える
1

それがあなたのpbを修正するかどうかはわかりませんが、最後に問題に遭遇したのは、バンドルがめちゃくちゃだったからです。(coredata モデルにプロパティを追加し、モデルからクラスを再生成したときに発生しました) 古いモデルがまだ使用されていました。

質問で説明されているのとほとんど同じです: エンティティは、キーのキー値コーディングに準拠していません

まだ完了していない場合は、主催者からプロジェクトの派生データを消去してみてください。これが私のために働いたものです。

于 2013-02-04T08:30:01.080 に答える