我正在使用CoreData与该实体的一个实体和两个属性。
实体:粘合剂
属性:名称,lastOpened
,BR> 我能够插入实体的一个新的对象没有问题,而且我还可以设置它的名字,但我不能设置它的lastOpened属性。
这里是我的代码:
CoreData - insertNewObjectForEntityForName不能设置属性
Binder *newBinder = [NSEntityDescription insertNewObjectForEntityForName:@"Binder" inManagedObjectContext:context];
[newBinder setName:@"Binder"];
[newBinder setLastOpened:[NSDate date]]; //Tried this first
newBinder.lastOpened = [NSDate date]; //No compiler warning either
然而,当我运行应用程序,我得到的-[Binder setLastOpened:]: unrecognized selector sent to instance 0x9688870
一个错误,我可以确认所显示的内存地址实际上是正确的Binder对象。任何想法,为什么我可以设置一个属性,但不是另一个?谢谢。
Binder.h:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@class Cards;
@interface Binder : NSManagedObject
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSDate * lastOpened;
@property (nonatomic, retain) NSSet *cards;
@end
@interface Binder (CoreDataGeneratedAccessors)
- (void)addCardsObject:(Cards *)value;
- (void)removeCardsObject:(Cards *)value;
- (void)addCards:(NSSet *)values;
- (void)removeCards:(NSSet *)values;
@end
Binder.m:
#import "Binder.h"
#import "Cards.h"
@implementation Binder
@dynamic name;
@dynamic lastOpened;
@dynamic cards;
@end
似乎你的模型没有'lastOpened'这样的属性。打印您的管理对象模型并检查。 –