我剛剛開始使用核心數據。我有大約40-50個屬性的實體。鑑於我有一個表示屬性名稱的字符串數組(這些屬性的類型都是字符串),有沒有一種方法可以通過編程方式設置數組中的屬性?還是必須手動將這些屬性粘貼到Xcode IDE中?核心數據以編程方式向條目添加屬性
感謝
我剛剛開始使用核心數據。我有大約40-50個屬性的實體。鑑於我有一個表示屬性名稱的字符串數組(這些屬性的類型都是字符串),有沒有一種方法可以通過編程方式設置數組中的屬性?還是必須手動將這些屬性粘貼到Xcode IDE中?核心數據以編程方式向條目添加屬性
感謝
雖然與SQLite的數據存儲不會幫你擺弄,有一個描述你的項目文件夾裏面的數據模型文件。該文件位於xml格式中,因此您可以遍歷數組並在該文件中生成必要的條目。然後,您可以覆蓋默認文件並在Xcode中重新打開您的項目。如果幸運的話,你的所有實體和屬性都會在那裏。
爲了讓你開始讓我指點你的文件。如果你剛開始一個新的項目,包括默認的核心數據模型,它應該在
<project directory>/<project name>/project_name.xcdatamodeld/project_name.xcdatamodel
位於默認看起來是這樣的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model name="Test1.xcdatamodel" userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1" systemVersion="11A491" minimumToolsVersion="Automatic" macOSVersion="Automatic" iOSVersion="Automatic">
<entity name="Event">
<attribute name="timeStamp" optional="YES" attributeType="Date"/>
</entity>
<elements>
<element name="Event" positionX="261" positionY="189" width="128" height="60"/>
</elements>
</model>
希望這有助於。
您可以以編程方式創建模型。 Xcode IDE對於大多數人來說是最簡單的。
創建模型
NSManagedObjectModel *mom = [[[NSManagedObjectModel alloc] init] autorelease];
然後用
NSMutableArray *entities = [NSMutableArray array];
NSEntityDescription *event = [[[NSEntityDescription alloc] init] autorelease];
[entities addObject:event];
[event setName:@"Event"];
[event setProperties:eventProperties];
...
然後創建實體的實體添加到模型:
[mom setEntities:entities];
請注意,你不能改變的模型,一旦你使用它的商店/上下文。
一旦你創建了你的模型,你可以使用NSCoding保存它。
這完全不受Apple的支持。請不要使用這個。 – 2012-02-13 09:50:07
只是爲了重複Daniel的評論。請不要這樣做。 Apple在運行時爲修改託管對象模型提供了完全可用的API(有關更多信息,請參閱NSManagedObjectModel API文檔)。不要亂用xcdatamodel文件 - 它的目的是支持Xcode模型編輯器,而不是*記錄或支持。 – 2012-09-04 12:31:54