Я получаю довольно туманную ошибку при попытке получить объект из NSDictionary
. Я получаю EXC_BAD_ACCESS
при звонке objectForKey
. Когда я смотрю на данные объекты, все в порядке. Словарь существует. Он содержит ключ, который я ищу. Ключ тоже есть. Все в порядке. Так почему же авария objectForKey
по этому поводу? Ive сделал снимок экрана как кода, так и консоли - вы можете увидеть свойства, о которых идет речь в распечатке. Ключ есть, и словарь содержит этот ключ. Но как будто словарь не существует или что-то еще? Расстроенный. Кстати, я «скопировал» словарь в попытке исправить крах, я бы этого не делал.EXC_BAD_ACCESS при выполнении объекта NSDictionary objectForKey - но объект есть
0
A
ответ
0
Проблема была не сделать с резьбой. Как я правильно напомнил в комментариях, NSMutableDictionary не является потокобезопасным. Он обновлялся в фоновом потоке, и указанный выше код вызывался в основном потоке. Простейшим решением было обернуть эти вызовы в @synchronised. Спасибо всем, кто помогал.
if ([update uniqueId]) {
@synchronized (self.downloadProgress) {
if ([self.downloadProgress objectForKey:[update uniqueId]]) {
NSDictionary *progressInfo = [[self.downloadProgress objectForKey:[update uniqueId]] copy];
if ([progressInfo objectForKey:@"progressString"]) {
return [progressInfo objectForKey:@"progressString"];
}
}
}
} (
Смежные вопросы
- 1. EXC_BAD_ACCESS при выполнении блока
- 2. NSDictionary objectForKey return value
- 3. NSDictionary objectForKey throws Exception
- 4. EXC_BAD_ACCESS с NSDictionary/CFDictionaryRef
- 5. NSDictionary objectForKey objectAtIndex если есть нулевая
- 6. NSDictionary objectForKey answere randomly
- 7. objectForKey возвращает null, но nsdictionary заполнен
- 8. EXC_BAD_ACCESS при изменении булева значения в NSDictionary
- 9. NSDictionary objectForKey не работает
- 10. NSDictionary вызывает EXC_BAD_ACCESS
- 11. EXC_BAD_ACCESS при попытке создать новый NSDictionary
- 12. Как использовать объект объекта NSDictionary?
- 13. EXC_BAD_ACCESS при выполнении ABAddressBookSave!
- 14. NSDictionary EXC_BAD_ACCESS
- 15. Какао - NSDictionary objectForKey - управление памятью уточнение
- 16. NSDictionary objectForKey/valueForKey уже отформатирован?
- 17. NSDictionary objectForKey to var name
- 18. NSDictionary objectForKey возвращает неправильное значение
- 19. как извлечь объект из NSDictionary с помощью ObjectForKey
- 20. EXC_BAD_ACCESS при создании NSMutalbeArray из NSDictionary
- 21. NSDictionary mutableCopy повышает exc_bad_access
- 22. Как обращаться с NSDictionary ObjectForKey Ошибки при подаче ошибок JSON
- 23. NSDictionary не реагирует на objectForKey и valueForKey
- 24. stringValue из NSDictionary objectForKey ошибка времени выполнения
- 25. XCode NSDictionary ошибка - objectForKey]: непризнанные селектор направлен например
- 26. Преобразование NSMutableArray в NSDictionary для использования objectForKey?
- 27. Символы цикла NSString и NSDictionary objectForKey
- 28. EXC_BAD_ACCESS при выпуске объекта UIPopoverController
- 29. Не удается получить objectForKey из NSDictionary
- 30. iPhone NSDictionary objectForKey: vs valueForKey: performance
'self.downloadProgress' свойство' NSDictionary', ok. Каков атрибут владения собственностью? Думаю, это не «копировать», верно? –
Посмотрите внимательно на журнал - у вас есть '__NSDictionaryM' - экземпляр' mutable'. Довольно неожиданно? Поэтому проверьте, где он становится изменчивым, и исправьте его. –
Чтобы исправить это, просто добавьте атрибут 'copy' следующим образом:' @property (nonatomic, copy) NSDictionary * downloadProgress; 'Надеюсь, это поможет. –