2011-12-10 76 views
0

我正在使用以下代碼在coredata中進行自動遷移。僅在升級屬性類型時Coredata升級失敗

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

這是實體類的version1代碼。

​​

以下是版本2碼

@interface Entity : NSManagedObject 
{ 
} 

@property (nonatomic, retain) NSDate * var; 

@end 

在verision只讀屬性VAR的類型從NSString的改變的NSDate

讓我知道你什麼都需要,如果只讀屬性類型做是改變..

它工作正常,如果我添加其他類或新屬性的版本2 coredata。

問候, Dhana

+0

它是如何失敗?我最近做了這個,並且它工作得很好。 – Mundi

+0

當我從舊版本升級到最新版本時發生。 – Dhanaraj

+0

當我將應用程序從舊版本升級到最新版本時發生。以下是錯誤------ logsUnresolved錯誤錯誤域= NSCocoaErrorDomain代碼= 134140「該操作無法完成。(可可錯誤134140.)」UserInfo = 0x7883ae0 {reason =無法找到或自動推斷映射模型對於遷移,destinationModel =()isEditable 0,實體 – Dhanaraj

回答

2

你必須遵循以實現在Xcode 4.2的核心數據模型版本變化的正確步驟。退房尤其是:

這也將有助於運行新版本之前完全刪除從模擬器或設備的應用程序。

+0

我已經在appstore中的應用程序,所以我不能刪除舊的數據庫。除了屬性類型的更改外,所有情況下都會更新。 – Dhanaraj

+0

你爲什麼拒絕投票?此過程確實確保數據保持不變。您必須編寫自己的編碼例程,以便將字符串轉換爲日期。 – Mundi