2014-04-01 30 views
0
NSFetchRequest *fetchLLObjects = [[NSFetchRequest alloc] init]; 

[fetchLLObjects setEntity:[NSEntityDescription entityForName:@"CustomerOrder" inManagedObjectContext:self.managedObjectContext]]; 

[fetchLLObjects setIncludesPropertyValues:NO]; //only fetch the managedObjectID 



NSError *error = nil; 

NSArray *allObjects = [self.managedObjectContext executeFetchRequest:fetchLLObjects error:&error]; 

这里阵列被示出为零的数据。但在数据库中我可以看到有数据。我不知道可能是什么原因。如何获取从NSManaged对象上下文

+0

注释掉setIncludesPropertyValues:NO。结果仍然是零? – bilobatum

+0

是的,我仍然得到零值。获取请求后, –

+0

错误对象是否为零? – bilobatum

回答

0

请在fetchrequest

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"CustomerOrder" 
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"managedObjectID == %@", managedObjectID]]           inManagedObjectContext:self.managedObjectContext]; 
[fetchRequest setEntity:entity]; 
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:nil]; 
+0

我很新这个ios.Please告诉我如何获得managedObjectID –

+0

设置一个谓词是可选的,这里不是问题。 – bilobatum

0

设置以下两个属性添加谓词和你做。

fetchRequest.returnsDistinctResults = YES; 
fetchRequest.resultType = NSDictionaryResultType; 

希望这会有所帮助。

编辑

NSFetchRequest *fetchRequest= [[NSFetchRequest alloc]init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Songs" inManagedObjectContext:myManagedObjectContext]; 

//Take properties dictionary 
NSDictionary *entityProperties = [entity propertiesByName]; 
[fetchRequest setEntity:entity]; 
[fetchRequest setReturnsDistinctResults:YES]; 
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"song_type"]]]; 
NSArray * result = [myManagedObjectContext executeFetchRequest:fetchRequest error:nil]; 
+0

for NSDictionary * entityProperties也显示nil。 –

0

你说: “但在数据库中,我可以看到,有数据。”

我对这种说法持怀疑态度。我怀疑核心数据存储中不存在CustomerOrder对象。 “查看”商店内数据的唯一方法是关闭日志模式并使用第三方软件在.sqlite文件内达到峰值。

尽管别人说过,你的提取请求没有问题。因此,请仔细检查您的代码,将对象插入商店并保存到上下文中。