我已经在我的核心数据模型中添加了一个新实体(站点),以及与指向站点的旧实体(通知)的关系。我需要做的是用一个对象填充新实体(新对象的属性值现在在User Defaults中),然后将所有旧对象分配给表示关系的变量。
Site对象上的notifications变量是一对多和可选的。 Notification对象上的站点变量是一对一且必需的。
我的新对象看起来像这样:
#import <Foundation/Foundation.h>
@interface Site : NSManagedObject
@property (nonatomic, retain) NSString *url;
@property (nonatomic, retain) NSString *accessKey;
@property (nonatomic, retain) NSString *secretKey;
@property (nonatomic, retain) NSSet *notifications;
@end
旧对象有一个新的“网站”属性:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import "Site.h"
@interface Notification : NSManagedObject
@property (nonatomic, retain) NSNumber *created;
@property (nonatomic, retain) NSNumber *isRead;
@property (nonatomic, retain) NSString *message;
@property (nonatomic, retain) NSNumber *notificationId;
@property (nonatomic, retain) NSString *url;
@property (nonatomic, retain) NSString *urlMarkRead;
@property (nonatomic, retain) Site *site;
@end
我有什么想法可以做到这一点?
答案 0 :(得分:0)
您可以进行手动迁移。
可以帮助您编写代码,但这样做可以解决您的问题。查看核心数据版本控制和数据迁移编程指南。在那里,您将找到迁移过程,其中包含一个名为自定义实体迁移策略的子部分,其中描述了您的情况。
您需要创建NSEntityMigrationPolicy
的子类。