EXC_BAD_ACCESS UIKit и QuartzCore совместно используют CALayer
Я экспериментирую с ошибкой EXC_BAD_ACCESS, которую не могу устранить, поэтому здесь я представляю ее вам в надежде получить некоторую помощь:)
Обычно я использую для решения такого рода ошибок, используя инструменты-зомби, но на этот раз это не так просто...
Как вы можете видеть на прикрепленном изображении, похоже, что я не взаимодействую с этим объектом; это только сохранено / выпущено UIKit и QuartzCore, таким образом, я не знаю, где искать или что сделать, чтобы решить это.
Любой намек? Спасибо!
2 ответа
Поскольку вы говорите, что используете многопоточность, я уверен, что это ваша проблема:
UIKit, хотя и рекламируется как поточно-ориентированный начиная с iOS4, не является полностью поточно-ориентированным. Он выполняет внутренние вызовы UIStringDrawing, который не является потокобезопасным, и вы в конечном итоге с этими сбоями. Посмотрите здесь: методы UIStringDrawing не являются потокобезопасными в iOS 6
Попробуйте вместо этого нарисовать свой текст в CATextLayer
Мне немного любопытно, почему и как вы используете общий CALayer? По моему опыту, работа с CALayers не требует больших затрат, вы разделяете CALayer между двумя представлениями или как? В этом случае моя рекомендация и ответ - не делиться им, а вместо этого иметь два CALayers. Если у вас нет варианта использования, который, конечно, хорош, но я не могу думать ни о каком.
Удачи!