Перечислять BOOL из NSDictionary - PullRequest
       22

Перечислять BOOL из NSDictionary

0 голосов
/ 10 августа 2011

У меня есть файл .plist, который загружен в мой проект Xcode. Я успешно поместил его в каталог документов своего iPhone во время тестирования. Когда я сбрасываю содержимое в NSMutableDictionary и пытаюсь перечислить его, я получаю EXC_BAD_ACCESS сбои. У всех ключей есть BOOL, связанные как их значения. Что я делаю не так?

Мой код сейчас:

for (id key in achDict) {

    NSLog(@"Achievement:%@ done:%@", key, [[achDict objectForKey:key] boolValue]);

}

Это всегда возвращает EXC_BAD_ACCESS в случае сбоя.

1 Ответ

2 голосов
/ 10 августа 2011

Ваш NSLog ожидает два объекта, но вы передаете ему строку 'key' и Integer.Значение Bool не является объектом, оно возвращает целочисленное значение (0 для False и 1 для True).%@ для Objective C Objects.Вместо этого используйте %d для получения целочисленных значений, таких как логические значения C.

Измените свой оператор NSLog на:

NSLog(@"Achievement:%@ done:%d", key, [[achDict objectForKey:key] boolValue]);

В руководстве по программированию в Apple есть полезный разделМодификаторы строки

...