0

我在核心数据模型中添加了一个新实体(站点),并与指向站点的旧实体(通知)建立了关系。我需要做的是用单个对象填充新实体(新对象的属性值现在在用户默认值中),然后将所有旧对象分配给表示关系的变量。

Site 对象上的通知变量是一对多且可选的。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

有什么想法可以做到这一点吗?

4

1 回答 1

0

您可以进行手动迁移。编写代码对您来说将是一些工作,但它会解决您的问题。

查看核心数据版本控制和数据迁移编程指南。在那里,您会找到“迁移过程”,其中包含一个名为“自定义实体迁移策略”的小节,该小节描述了您的情况。

您需要创建一个NSEntityMigrationPolicy.

于 2012-08-24T10:02:55.197 回答