2011-11-09 55 views
0

我爲我的核心數據項目創建了一個框架,該框架解析並將特定的源存儲到核心數據中。我想打包這個框架,以便每當我想再次解析此feed時,我只需將該框架拖到另一個項目中即可。但是,當我嘗試將我的框架拖入另一個項目時,新項目無法找到Core Data模型(儘管我已將它包含在框架中)。如何將核心數據模型加入框架?

我發現如果我在框架中包含核心數據模型,然後將Core Data Model文件(其中一個名爲DataModel.xcdatamodeld,另一個名爲DataModel.xcdatamodel)拖入我的新項目中,項目可以找到核心數據模型並按預期解析和存儲數據......附上一些圖片來說明我必須在我的框架中包含的兩個數據模型,以及我必須將兩個模型拖入一個新項目中。

任何人都可以解釋爲什麼這個工程?似乎不正確的是,我需要有兩個數據模型的副本,一個在框架中,另一個在框架的工作項目中......是否有我可以打包整個核心數據和解析項目與數據模型,所以我可以把它拖入另一個項目?這將包括下面列出的所有這些文件:

感謝

回答

1

我可以問你後,你用它來實例化模型中的核心數據堆棧代碼片段? 如果代碼使用主包來獲取模型資源(很多簡單的核心數據示例都是這樣做的),它將不起作用,因爲模型資源位於框架內(這不是您的案例中的主包)。你將不得不使用類似的東西來初始化你的模型:

+ (NSManagedObjectModel*)createModelForClass:(Class)modelClass 
{ 
    NSManagedObjectModel *model = 
    [NSManagedObjectModel mergedModelFromBundles: 
    [NSArray arrayWithObject: [NSBundle bundleForClass: modelClass]]]; 
    NSAssert(model != nil, @"Unable to initialize a data model");  
    return model; 
} 

你在哪裏傳遞你的框架中定義的任何類型的類。我通常創建一個類作爲框架中定義的模型的外觀/傘,並在調用上述方法時使用它。