xcode8.2.1 版本上使用core data的正确初始化方式
- 新建.xcdatamodeld,Entity, 属性,关系等
- 点击Entity,修改最右面板属性,
Module
为空,Codegen
为Manual/None
, 不要用xcode自动生成NSManagedObject Subclass
, 手动Command+N
生成实体类(添加属性和关系等)。如果点击了自动生成,清除所有DerivedData, 重新build - 集成MagicRecord,就可以愉快的使用core data了。
如果不这么做,可能遇到的问题有:
- 采用xcode自动生成,发现重名类
- Unable to load class named 'Person' for entity 'Person'. Class not found, using default NSManagedObject instead.等等
相关代码如下:
#import <CoreData/CoreData.h>
@class IMMessage;
@interface Person : NSManagedObject
@property (nonatomic, assign) int32_t age;
@property ( nonatomic, copy) NSString *name;
@property ( nonatomic, copy) NSString *phone;
@property(nonatomic, retain) NSSet<IMMessage *> *msgs;
@end
#import "Person.h"
@implementation Person
@dynamic name, phone, age, msgs;
@end