10

これは私が得ているエラーです

   *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '"Place" is not a subclass of NSManagedObject.'

私はそれが意味することは、「場所」がエンティティとしてコアデータモデルに追加されていないということだと思いますか??? しかし、下の画像のようになっています。

私の仮定は間違っていると思いますが、助けやアイデアがあればいいと思います。

これが原因となっている行であると確信しています:

  NSManagedObject* place = [NSEntityDescription
                               insertNewObjectForEntityForName:@"Place" 
                               inManagedObjectContext:context];
4

4 に答える 4

23

カスタム クラスを使用していない (Place.[hm] がない) 場合は、使用していないように思われますが、 [エンティティ] タブを確認し、クラス名が空白 (= NSManagedObject ) ( Placeではない) であることを確認してください。

于 2012-05-18T19:58:34.430 に答える
12

Message と Connection というクラスでも同じ問題がありました。このエラーは、MessageUI ライブラリを使用して電子メール機能を追加した直後に発生しました。ライブラリには Message および Connection という名前のクラスがあり、NSManagedObject のサブクラスとは見なされないため、競合が発生すると思います。プレフィックス (私の場合は X) を付けて名前を変更すると、エンティティが一意になります。競合が発生する可能性が少なくなるように、将来的にはすべてのエンティティにプレフィックスを付ける予定です。

于 2013-02-24T21:51:11.293 に答える
-1

この問題に対処するもう 1 つの方法は、実際にNSManagedObjectサブクラスを使用することです (推奨)。

Place *place = [NSEntityDescription
                           insertNewObjectForEntityForName:@"Place" 
                           inManagedObjectContext:context];
于 2012-05-18T20:23:33.930 に答える