我對Core Data非常非常新,而且我仍然把它和它的所有可能性搞混了。如何使用NSFetchedRequest或NSPredicate從實體中選擇所有行?
我在我的模型中有一個表USER,我想要獲得所有行作爲「SELECT * FROM USER」。
這是實現該目標的最佳方法嗎?
非常感謝您的幫助。
我對Core Data非常非常新,而且我仍然把它和它的所有可能性搞混了。如何使用NSFetchedRequest或NSPredicate從實體中選擇所有行?
我在我的模型中有一個表USER,我想要獲得所有行作爲「SELECT * FROM USER」。
這是實現該目標的最佳方法嗎?
非常感謝您的幫助。
從NSFetchRequest
文檔:
If you don’t specify a predicate, then all instances of the specified entity are selected (subject to other constraints, see executeFetchRequest:error: for full details).
基本的讀取操作是這樣說:
NSEntityDescription *entity = [NSEntityDescription entityForName:theEntityName inManagedObjectContext:_context];
NSFetchRequest *request = [NSFetchRequest new];
[request setEntity:entity];
您可以套用在這個階段使用NSSortDescriptor排序。
那麼你獲取的所有實體:
NSError *error;
NSMutableArray *fetchResults = [[_context executeFetchRequest:request error:&error] mutableCopy];
使用[NSPredicate predicateWithValue:YES]選擇所有。
在fetchResults中將是實體對象,不是嗎? – calamandurrio 2012-01-12 14:02:38
正確!他們是適當類型的實體。 – Ushox 2012-01-24 14:31:36