ошибка coredata, потому что sectionNameKeyPath или группировка данных в NSFetchedResultsController - PullRequest
4 голосов
/ 28 декабря 2011
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];

Кто-нибудь может помочь мне исправить это с помощью Building, может быть, ноль? потому что я хочу показать что-то вроде

enter image description here

Ответы [ 2 ]

4 голосов
/ 23 января 2012

Я понял ответ.Если вы группируете по зданию, вы также должны сортировать по зданию или местоположению здания.Порядок сортировки должен соответствовать порядку группировки.Таким образом, у вас не может быть ситуации, когда элементы в одной и той же «группе» имеют отдельный порядок.

3 голосов
/ 28 декабря 2011

Первое, что вы должны сделать, это переименовать ваши отношения и атрибуты.Я не знаю как, но обычно имена атрибутов и имена отношений не могут начинаться с большой буквы.Обычно редактор модели в XCode применяет это.

Теперь к вашей актуальной проблеме:

Как всегда, существует более одного решения.Я пытаюсь объяснить одно из возможных решений:

Убедитесь, что Building.Title никогда не равен nil: вы можете сделать это на уровне контроллера или на уровне модели.Если вы делаете это на уровне модели, просто создайте подкласс NSManagedObject для этой сущности и создайте новое свойство только для чтения, которое вы можете назвать «titleForDisplay».Перед возвратом значения Title просто проверьте, имеет ли оно значение nil, и, если это так, замените его локализованной строкой, представляющей значения nil.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...