如何在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];
它会给你详细的信息。