Строка objectForKey с "/" вылетает из моего приложения - PullRequest
0 голосов
/ 01 октября 2010

Следующий код работает нормально:

            NSDictionary *item;
            if([arrTesting count] >0 )
                 item = [arrTesting objectAtIndex:0];

            // The text "article" is what I'm searching for to ensure it exists
            if([item objectForKey:@"article"] != [NSNull null])
            {
                NSString *mid = [[item objectForKey:@"article"] objectForKey:@"id"];
                   (more code below...)

Но если я заменю «article» на «/ code / location / article», приложение вылетает.Что дает??Чего мне не хватает ??

1 Ответ

2 голосов
/ 01 октября 2010

Если NSDictionary не содержит определенного элемента, objectForKey: вернет nil, а не [NSNull null].

Итак, если словарь не содержит искомый объектвы, по сути, проводите сравнение типа nil != [NSNull null], которое всегда будет иметь значение true.Это, вероятно, не то, что вы хотите.

(Проверка на NSNull означает, что запись есть, но имеет нулевое значение. Это часто встречается, например, для ответов JSON. Я не уверен, является ли оно общимхотя в вашем сценарии.)

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