0

コア データ モデルに新しいエンティティ (サイト) を追加し、サイトを指す古いエンティティ (通知) との関係を追加しました。私がする必要があるのは、新しいエンティティに 1 つのオブジェクトを設定し (新しいオブジェクトの属性の値は現在、ユーザーの既定値にあります)、関係を表す変数にすべての古いオブジェクトを割り当てることです。

Site オブジェクトの notifications 変数は、1 対多でオプションです。Notification オブジェクトのサイト変数は 1 対 1 であり、必須です。

私の新しいオブジェクトは次のようになります。

#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

手動移行を実行できます。それをコーディングするのはあなたにとっていくらかの作業になるでしょうが、それはあなたの問題を解決します.

Core Data Versioning and Data Migration Programming Guide をご覧ください。そこには、状況を説明するカスタム エンティティ移行ポリシーと呼ばれるサブセクションを含む移行プロセスがあります。

のサブクラスを作成する必要がありますNSEntityMigrationPolicy

于 2012-08-24T10:02:55.197 に答える