0
我創建了一個新版本的託管對象模型(新的xcdatamodel文件),更新了xcdatamodeld以使新版本成爲「當前」,並添加了一個屬性(hasStartWithFlow )到一個實體(Cycle)。 hasStartWithFlow是布爾值,不是可選的,默認值= NO。我已經更新Cycle.h有單元測試沒有看到新版本的託管對象模型
@property (nonatomic) BOOL hasStartWithFlow;
和Cycle.m有
@dynamic startsWithFlow;
我實例在單元測試代碼的新持久性存儲文件(源碼),然後嘗試設置新值:
cycle.startsWithFlow = true;
我得到錯誤-[Cycle setStartsWithFlow:]: unrecognized selector sent to instance 0x192ebf0
。如果我打破單元測試執行並檢查[NSEntityDescription entityForName:@"Cycle" inManagedObjectContext:context]
,我發現它不包含我的新屬性。
我錯過了什麼?
嗯。 ./Xcode/DerivedData/ /Build/Products/Debug-iphonesimulator/AppNameLogicTests.octest/DataModel.momd/VersionInfo.plist仍然有指向舊版本的NSManagedObjectModel_CurrentVersionName,即使它說我在上次構建時文件已更新。刪除octest包中的DataModel.momd目錄只會導致重新創建錯誤的值。嗯。 –
聽起來像是當你更新模型時,你只更新主應用目標的設置,而不是更新單元測試目標的設置。 –
我怎麼能這樣做?有一個xcdatamodeld源文件與目標成員資格檢查兩個目標。我只看到一個地方設置currentVersion(在File Inspector中的「Versioned Core Data Model」下)。 –