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