2015-10-23 119 views
0

我開始開發核心數據庫,我確實有幾個我無法理解的問題。任何人都可以簡單解釋一下,請保持簡單。關於核心數據的問題

1)

NSManagedObject *employee=[NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManagedObjectContext:_managedObjectContext]; 
    [employee setValue:self.empnametextfield.text forKey:@"empname"]; 
    [employee setValue:self.empidtextfield.text forKey:@"empid"]; 

而數據到數據庫中保存到數據庫中,我使用此代碼。但是,爲什麼我創建NSManagedObject的實例& NsentityDescription?

2)

_fetchrequest=[[NSFetchRequest alloc]init]; 
     NSEntityDescription *entity=[NSEntityDescription entityForName:@"Employee" inManagedObjectContext:_managedObjectContext]; 
     [_fetchrequest setEntity:entity]; 
NSError *error; 
    _fetchedobjects=[_managedObjectContext executeFetchRequest:_fetchrequest error:&error]; 

當我取數據我使用該編碼。所以我的問題是爲什麼我在這裏使用NSEntity描述的實例?

3)在保存獲取數據的&時,我們使用「NSEntityDescription」的目的有什麼區別?

請回答我的上述3個問題,因爲我很困難呢? 在此先感謝。

+0

卡住怎麼樣?你覺得他們是什麼?你讀了些什麼? – Wain

+0

先生,我已閱讀過關於它們的內容,但它們在程序中的功能如何,它們的重要性以及它們是如何工作的。我只是無法理解。 –

回答

0

當您構建核心數據堆棧時,將加載一個描述數據結構對象和關係的模型。這是根據實體描述構建的。他們持有數據的格式,名稱,類型,多重性和相關規則。沒有這個,你沒有結構,你可能只是有一個通用的NSSet。因此,當您對數據結構進行操作時,創建新的實體實例或查詢時,您需要獲取正在使用的實體的描述,以便系統知道要使用的規則。

+0

在我保存數據的部分我不使用nsentitydescription的任何實例,但爲什麼我在獲取數據時使用同一個實例。 –

+0

當您創建託管對象時,您使用實體名稱並找到您的描述。您可以使用'+ fetchRequestWithEntityName:'執行類似的操作 – Wain