0

こんにちは、私はまだ Core Data の初心者で、突然これらの単純なコードに行き詰まりました。

Purchased* newItem=[NSEntityDescription insertNewObjectForEntityForName:@"Purchased" inManagedObjectContext:self.managedObjectContext];
[newItem setPurchasedDate:[NSDate date]];
[newItem setLastOpen:[NSDate date]];
if ([self.managedObjectContext save:&error])
{
   //do something if the save success
}

上記のコードから、'NSInvalidArgumentException' が発生しました。ご覧のとおり、例外は次を指しています

[newItem setPurchasedDate:[NSDate date]];

そしてそれは正しいです。このコードを段階的にデバッグしようとすると、このメッセージが呼び出されたときにプログラムが中止されます。

モデルと Purchased クラスに問題がないので、何百回もチェックしました。-(void)awakeFromInsert() メソッドを上書きして設定値の場所を変更しようとしましたが、同じ例外が発生します。誰か提案がありますか?前にありがとう。

4

1 に答える 1

0

これをチェックして:

管理対象オブジェクトモデルのPurchasedエンティティには、と呼ばれるタイプの属性DatepurchasedDate、と呼ばれる別の属性がありますlastOpen

あなたのPurchased.hファイルには

@property (nonatomic, strong) NSDate *purchasedDate;
@property (nonatomic, strong) NSDate *lastOpen;

あなたのPurchased.mファイルには

@dynamic purchasedDate;
@dynamic lastOpen;

#import "Purchased.h"新しいインスタンスを作成するファイルにいることを確認してください。

于 2012-12-09T16:38:55.287 に答える