2011-12-28 10:52:13.633 BadgerNew[663:707] CoreData: error: (NSFetchedResultsController) object <Business: 0x628c8e0> (entity: Business; id: 0x628c870 <x-coredata://8D661026-BBFA-4C41-B434-167800D925DD/Business/p88> ; data: {
Aliases = "<relationship fault: 0x6219950 'Aliases'>";
Bookmark = 0;
Building = nil;
City = "0x56531a0 <x-coredata://8D661026-BBFA-4C41-B434-167800D925DD/City/p1>";
Distance = "104.6926812925746";
Districts = (
"0x63bcb30 <x-coredata://8D661026-BBFA-4C41-B434-167800D925DD/District/p1>"
);
Email = nil;
ID = 74318;
Images = "<relationship fault: 0x621a130 'Images'>";
InBuildingAddress = nil;
LatitudeLongitude = "0x565c2e0 <x-coredata://8D661026-BBFA-4C41-B434-167800D925DD/LatitudeLongitude/p81>";
Like = 0;
OpeningHour = nil;
Phones = "<relationship fault: 0x62196b0 'Phones'>";
Price = 0;
Promotions = "<relationship fault: 0x6219630 'Promotions'>";
Rating = "0x565e800 <x-coredata://8D661026-BBFA-4C41-B434-167800D925DD/Rating/p81>";
Reviews = (
);
Street = "Jl. Duri Raya 73";
Tags = (
"0x63c38b0 <x-coredata://8D661026-BBFA-4C41-B434-167800D925DD/Tag/p74>"
);
Tenants = "<relationship fault: 0x62194c0 'Tenants'>";
TimeStamp = nil;
Title = "Toko Guna Bangunan Jaya";
URLs = "<relationship fault: 0x6219440 'URLs'>";
Website = nil;
Zip = 11510;
pinAndLineNumber = 1;
updated = 0;
}) returned nil value for section name key path 'Building.Title'. Object will be placed in unnamed section
当我想在NSFetchedResultsController上使用sectionNameKeyPath:@“Building.Title”对数据进行分组时,会出现此错误日志。像这样的东西
NSFetchedResultsController * FRC=[[[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:[ThreadClass managedObjectContext] sectionNameKeyPath:@"Building.Title" cacheName:Nil]autorelease];
任何人都可以帮我解决这个问题,建筑可以是零吗?因为我想展示像
这样的东西
答案 0 :(得分:4)
我想出了答案。如果您按建筑分组,则还必须按建筑或建筑位置进行分类。排序顺序必须与分组顺序一致。因此,您不能在同一“组”中的项目具有单独排序的情况。
答案 1 :(得分:3)
您应该做的第一件事是重命名您的关系和属性。我不知道如何,但通常属性名称和关系名称不能以大字母开头。通常Xcode中的模型编辑器强制执行此操作。
现在问你的实际问题:
一如既往,有多种解决方案。我试着解释一个可能的解决方案:
确保Building.Title永远不会为零:您可以在控制器层或模型层中执行此操作。如果在模型层中执行此操作,只需为此实体创建NSManagedObject的子类,并创建一个新的只读属性,您可以将其称为“titleForDisplay”。在返回Title的值之前,只需检查它是否为nil,如果是,则将其替换为表示nil值的本地化字符串。