#ios #objective-c #crash
#iOS #objective-c #сбой
Вопрос:
Я сохраняю что-то вроде кэша памяти в NSMapTable
:
// check for nils
if (key amp;amp; image) {
// set object to NSMapTable
[_mapTable setObject:object forKey:key]; // crash
}
К сожалению, в последнее время у меня возникли некоторые проблемы с этим методом. Сбой происходит довольно редко, только на iOS 7. Журнал сбоев указывает, что это происходит в строке выше, и показывает более подробную информацию:
-- Crashed: com.apple.root.default-priority ---
SIGABRT ABORT at 0x123456789
--- call stack ---
0
libsystem_kernel.dylib
__pthread_kill 8
1
libsystem_pthread.dylib
pthread_kill 58
2
libsystem_c.dylib
abort 76
3
libsystem_malloc.dylib
free 382
4
Foundation
-[NSConcreteMapTable grow] 546
5
Foundation
-[NSConcreteMapTable setObject:forKey:] 140
Фактически, только 4 и 5 дают какую-либо информацию. Я не могу понять, что здесь не так. Поскольку это происходит только в iOS7, может быть, это ошибка Apple? Есть идеи, что может быть причиной?
Комментарии:
1. Вы когда-нибудь это понимали? Я тоже вижу, что это случается довольно редко, пару раз в день для многих пользователей.
2. @Dima То же самое для меня, на данный момент не нашел решения. Пожалуйста, ответьте здесь, если вы найдете какое-либо решение 🙂