0

次のように、コアデータに検証機能を実装しています。

- (BOOL)validateMovementId:(id)value error:(NSError **)error {

NSString * idValue = (NSString *) value;
Movement * m = [Movement loadMovement:idValue context:self.managedObjectContext];

if(m != nil)
    return NO;

return YES;  }

基礎となるコア データ モデル クラスでカテゴリを使用しているため、追加内容を失うことなく、XCode を使用してこれらのクラスを自動的に書き換えることができます。これは、マネージ コンテキストを保存するときにメソッド自体に EXC_BAD_ACCESS を与える上記のメソッドを除くすべてのメソッドで正常に機能します。

この関数をカテゴリから基本クラスに移動すると、問題が修正されます。これは、Core Data がコンテキストを保存するときに、カテゴリではなく基本クラスを使用しているため、ポインタが無効になるためだと推測しています。カテゴリを使用して検証を実装する方法はありますか、またはこれを行うために自動生成されたオブジェクトをサブクラス化し、XCode を使用してそれらを自動的に書き換える機能を保持する必要がありますか?

4

0 に答える 0