Приложение падает при доступе к значениям NSDictionary, но не при доступе к его ключам? - PullRequest
3 голосов
/ 20 июля 2011

У меня есть объект NSDictionary под названием «myData», и я пытаюсь получить к нему доступ из метода UITableViewDelegate «didSelectRowAtIndexPath».

Я могу нормально выполнить следующие операции:

if(myData == nil) { /* it doesn't print here, so it's not nil */ }
NSLog(@" * Keys: %@", [myData allKeys]); // Outputs all of the keys.

Но если я попытаюсь выполнить какую-либо из ЭТИХ операций, приложение завершит работу без предупреждений, ошибок или каких-либо выводов:

[myData objectForKey:@"akey"];
[myData allValues];

У кого-нибудь есть идея, что может быть причиной этого?

1 Ответ

1 голос
/ 20 июля 2011

Похоже, что myData был не содержит действительную ссылку.Вы выпустили его или забыли сохранить его после прочтения?

[Обновление]: чтобы быть в безопасности и исключить это, просто сделайте еще одно сохранение после создания словаря (только для тестирования!) И проверьте,авария исчезает.Если нет, возможно, какая-то другая переменная перезаписывает ваши myData.Установите две точки останова, одну в точке, где словарь назначен для myData, другую до точки сбоя.Проверьте, видите ли вы разумную сводку, например, «2 пары ключей».

...