#ios #objective-c #react-native
#iOS #objective-c #react-native
Вопрос:
Я использую React Native SVG для проекта, и с обновлением до iOS 14 я начал получать сбой в окне с изменяемым размером. Я отследил сбой до трех назначений в библиотеке, но не уверен, почему они вызывают a EXEC_BAD_INSTRUCTION
или a EXC_BAD_ACCESS
.
Этот сбой происходит только после первоначального рендеринга в приложении при изменении размера поля. Первый рендеринг проходит нормально, а затем последующее перемещение элемента вызывает ошибку. Этот код работал в iOS 13, но не в iOS 14.
Я создал воспроизводимый пример здесь. Я также создал проблему в репозитории здесь.
В библиотеке я попытался жестко запрограммировать присвоения известным хорошим значениям, предполагая, что что-то пошло не так с тем, как они назначались, но безуспешно.
Ниже я получаю ошибку:
label.attributedText = (__bridge NSAttributedString * _Nullable)(attrString);
label.baselineAdjustment = UIBaselineAdjustmentNone;
//label.lineBreakMode = NSLineBreakByWordWrapping;
label.backgroundColor = UIColor.clearColor;
//label.textAlignment = NSTextAlignmentRight;
label.numberOfLines = 0;
label.opaque = NO;
label.font = font;
//label.textColor = [UIColor colorWithCGColor:color];
Это из строки 203 в RNSVGTSpan, комментарии — это строки, которые я удалил, чтобы заставить его работать, но это лишает используемой функциональности.
Я в недоумении, почему это будет работать при первоначальном рендеринге, но не при последующих изменениях в iOS 14, но работает безупречно в iOS 13.
Комментарии:
1. На какой строке вы получаете сбой?
2. Сбой, например, 203 в RNSVGTSpan, я изучил дальше в последнее время и обнаружил, что изменение
attributedText
на текст и предоставление строки напрямую также устраняет мой сбой. Я смотрю, получает ли AttributedString неправильное значение каким-либо образом. Кроме того, RNSVGTSpan взят из React Native SVG и не является тем, что я написал, но пытаюсь исправить.3. Итак, это первая строка приведенного выше фрагмента кода. Вы проверили
attrString
, действительно ли это? Это может привести к сбою, если это не так.4. Я еще не подтвердил, что это действительно, но в настоящее время я изучаю, действительно ли это
attrString
или нет. Я также рассматриваю возможность просто заменить его,text
поскольку в нем задаются те же значения, что и в послесловияхattrString
, которые по большей части находятся в .