2011-12-28 45 views
4
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”。像这样的东西coredata错误,因为sectionNameKeyPath或NSFetchedResultsController

NSFetchedResultsController * FRC=[[[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:[ThreadClass managedObjectContext] sectionNameKeyPath:@"Building.Title" cacheName:Nil]autorelease]; 

任何人都可以帮我解决这个建筑可以是零?因为我想告诉像

enter image description here

回答

4

我想出了答案。如果您按建筑进行分组,则还必须按建筑物或建筑物位置进行分类。您的排序顺序必须与您的分组顺序相匹配。所以你不能有一个情况,在同一个“组”的项目有单独的订购。

3

你应该做的第一件事是重命名你的关系和属性。我不知道如何,但通常属性名称和关系名称不能以大写字母开头。通常,Xcode中的模型编辑器强制执行此操作。

现在你的实际问题:

有一如既往的多个解决方案。我试图解释一种可能的解决方案:

确保Building.Title永远不是零:您可以在控制器层或模型层执行此操作。如果您在模型层中执行该操作,只需为该实体创建NSManagedObject的子类并创建一个新的只读属性,您可以将其称为“titleForDisplay”。在返回Title的值之前,只需检查它是否为零,如果是,则用代表零值的本地化字符串替换它。

+0

谢谢,我在NSManagedObject子类中使用了一个新的readonly属性,它解决了我的问题,即“部分名称关键路径的返回nil值”。 – 2012-10-05 07:18:41