如何在CoreData中显示NSLog中的详细信息? build议我一个解决scheme

我正在使用foliowin函数来获取应用程序中的所有logging

-(NSArray*)recordsInTable:(NSString*)tableName andManageObjectContext:(NSManagedObjectContext *)manageObjContext { NSError *error=nil; // **** log objects currently in database **** // create fetch object, this object fetch's the objects out of the database NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName: tableName inManagedObjectContext:manageObjContext]; [fetchRequest setEntity:entity]; NSArray *fetchedObjects = [manageObjContext executeFetchRequest:fetchRequest error:&error]; return fetchedObjects; } 

并使用下面的代码来获取logging

  NSArray *records=[dbAccessObj recordsInTable:@"Details" andManageObjectContext:managedObjectContext]; NSLog(@"records %@",records); 

我正在得到这样的日志

 **records ( "<Details: 0x76374b0> (entity: Details; id: 0x7636730 <x-coredata://CDEF0797-F141-47A7-902D-9689DCD90B83/Details/p1> ; data: <fault>)", "<Details: 0x7637770> (entity: Details; id: 0x7636740 <x-coredata://CDEF0797-F141-47A7-902D-9689DCD90B83/Details/p2> ; data: <fault>)", "<Details: 0x7637870> (entity: Details; id: 0x7636750 <x-coredata://CDEF0797-F141-47A7-902D-9689DCD90B83/Details/p3> ; data: <fault>)" )** 

但我想显示下面显示的logging所有细节shoiwng的日志。我犯了什么错误?

 **{ age = 11; fName = "firstName"; lName = "lastname"; sId = 4; })** 

你的代码没有错误。 你在arrays中看到的是“故障”。 从核心数据编程指南:

错误是Core Data用来减less应用程序内存使用量的机制。

… fault是代表尚未完全实现的pipe理对象的占位符对象,或表示关系的集合对象。

…如果在某个阶段访问故障对象的永久性属性,则核心数据自动检索该对象的数据并初始化该对象。

executeFetchRequest:返回一组故障(=占位符对象)以节省内存。 只要您检索一个对象的属性,该对象将被完全初始化,并且所有属性在debugging器中都可见。

为了debuggingpurpuses(仅) ,可以强制Core Data完全初始化数组中的所有对象

 NSArray *allAges = [records valueForKey:@"age"]; NSLog(@"records %@",records); 

我认为你可以使用debugDescription。 只需从debugging命令行写入:

 po [coreDataObject debugDescription]; 

它会给你详细的信息。