iPad iOS4 словарь возвращает 0 - PullRequest
       51

iPad iOS4 словарь возвращает 0

2 голосов
/ 21 февраля 2012

Я проверяю, что записи в моем словаре не равны 0, используя счетчик NSDictionary. Он работает и возвращает правильный номер, кроме iPad 4.3 Simulator и iPad под iOS 4.3. Это известная ошибка в iOS 4 или я наблюдаю побочный эффект чего-то другого, что я делаю, что несовместимо с iOS 4?

редактирование:

Спасибо за ваши комментарии! Я счастлив верить, что это мой код; Я новичок в этом. Вот очень упрощенная версия моего кода.

-(NSDictionary *)dictionaryOfSets
{
    if (!_dictionaryOfSets)
    {
        NSOrderedSet* set1 = [[NSOrderedSet alloc] initWithObjects:
            [NSNumber numberWithInt:(1)],
            [NSNumber numberWithInt:(2)],
            [NSNumber numberWithInt:(3)],
            [NSNumber numberWithInt:(4)],
            nil];
        NSOrderedSet* set2 = [[NSOrderedSet alloc] initWithObjects:
            [NSNumber numberWithInt:(9)],
            [NSNumber numberWithInt:(10)],
            [NSNumber numberWithInt:(11)],
            nil];

        _dictionaryOfSets = [[NSDictionary alloc] initWithObjectsAndKeys:
            set1,  [NSNumber numberWithInt:(1)],
            set2,  [NSNumber numberWithInt:(2)],
            nil];

        [set1 release];
        [set2 release];
    }
    return _dictionaryOfSets;
}

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

После нескольких недель поиска и тестирования я пришел к выводу, что NSOrderedSet не работает под iOS 4.3. Тот же код работает под iOS 5.0 и 5.1. Я заменил NSOrderedSet на NSSet, и теперь он работает под iOS 4.3. Я удивлен, что не нашел документации, подтверждающей это.

0 голосов
/ 21 февраля 2012

Я бы дважды проверил, что словарь не ноль. В этом случае сообщение nil - [dict count] - просто сделает это - вернет 0.

...