2011-12-10 6 views
0

以下のコードを使用して、coredataの自動移行を行っています。属性タイプのみをアップグレードするとCoredataのアップグレードが失敗する

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: 
         [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, 
         [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil]; 

これは、エンティティクラスのversion1コードです。

​​

後のみ属性タイプならば、何が行われる必要があるなら、私に教えてくださいだけVARの種類の属性がNSDate

にNSStringのから変更されたバージョン2のコードverisionで

@interface Entity : NSManagedObject 
{ 
} 

@property (nonatomic, retain) NSDate * var; 

@end 

です

他のクラスや新しい属性をversion2のcoredataに追加すると問題なく動作します。

よろしく、 ダナ

+0

どのように失敗しますか?私は最近これをして、うまくいった。 – Mundi

+0

旧バージョンから最新バージョンへのアップグレード時に発生します。 – Dhanaraj

+0

古いバージョンから最新バージョンにアプリケーションをアップグレードすると発生します。以下はエラーです------ logsUnresolved error Error Domain = NSCocoaErrorDomain Code = 134140 "操作を完了できませんでした(Cocoa error 134140)。" UserInfo = 0x7883ae0 {reason =マッピングモデルを見つけることができません。移行のために、destinationModel =()isEditable 0、エンティティ – Dhanaraj

答えて

2

あなたはXcodeの4.2のコアデータモデルのバージョンの変更を実装するために、適切な手順に従わなければなりません。特にチェックアウト:

また、完全に新しいバージョンを実行する前に、シミュレータや、あなたのデバイスからアプリを削除するのに役立ちます。

+0

私は既にappstoreにアプリケーションを持っているので、古いデータベースを削除することはできません。更新は、属性タイプの変更を除くすべての場合に機能します。 – Dhanaraj

+0

なぜあなたは投票を停止しましたか?このプロシージャは、データが元のままであることを確かに保証します。文字列を日付に変換する独自のコーディングルーチンを作成する必要があります。 – Mundi

関連する問題