2011-08-19 28 views
0

我在數據模型中添加了一個提取屬性到我的實體。我沒有添加它的謂詞。我用fetchRequestTemplateForName檢索它,但是當執行它時,我得到了這個錯誤「executeFetchRequest:error:一個獲取請求必須有一個實體。」存儲NSFetchRequest返回錯誤「一個獲取請求必須有一個實體」

但是我怎麼會得到這個錯誤。這不是我的實體的財產嗎?

於是我進一步調試的問題,並發現這是因爲檢索NSFetchRequest ==零

[自managedObjectModel] fetchRequestTemplateForName:@ 「somename」];

那麼我該如何解決它?

謝謝!

+0

,可能這就是問題所在。 – Robin

回答

0

我假設你在Xcode模型編輯器創建了獲取財產,而不是編程。你需要填寫謂詞,否則沒有什麼可取的。因此,NSFetchRequest返回爲nil

提取的屬性實際上只是一個方便的快捷方式,用於在代碼中寫出冗長的提取請求,並且再次輸出您不想保留的結果。也許這是一個很好的過程,首先看看您的代碼編寫的NSFetchRequest是否有效,然後將其轉移到模型中。

1

感謝您回答我的問題。我按照你的建議添加了謂詞,但NSFetchRequest仍然返回nil。這時我突然意識到,我實際上添加擷取的物業獲取請求我的實體,這就是原因fetchRequestTemplateForName返回nil。所以我添加Fetch Request(在編輯器菜單中有「添加提取請求」和「添加提取屬性」菜單項)並解決了問題!所以很抱歉的混亂:$。

但後來我的問題是爲什麼我們需要獲取的財產,因爲我們已經有讀取請求?我知道蘋果的文件說,類似「擷取的特性代表弱,單向關係。」但我仍然感到困惑B/C獲取請求似乎更直接。

一個fetchrequest對象應該設置一個實體上
相關問題