sizeWithFont がマルチスレッドでクラッシュしました。これはデバッグ情報です:
1 0x00a0df8e in icu::RuleBasedBreakIterator::handleNext
2 0x00a0daff in icu::RuleBasedBreakIterator::next
3 0x00a0d174 in icu::RuleBasedBreakIterator::following
4 0x35879719 in WebCore::nextBreakablePosition
5 0x3587842a in -[NSString(WebStringDrawing) _web_drawInRect:withFont:ellipsis:alignment:lineSpacing:includeEmoji:measureOnly:]
6 0x35877da3 in -[NSString(WebStringDrawing) _web_sizeInRect:withFont:ellipsis:lineSpacing:]
7 0x3090d238 in -[NSString(UIStringDrawing) sizeWithFont:constrainedToSize:lineBreakMode:lineSpacing:]
8 0x3090cee3 in -[NSString(UIStringDrawing) sizeWithFont:constrainedToSize:lineBreakMode:]
今、私は NSLock オブジェクトを使用してエラーを解決します。この関数を使用する前に、このオブジェクトをロックし、その後ロックを解除します
しかし、もっと良い解決策があるに違いないと思います!
このエラーは、2 つのスレッドの両方でこの関数の NSString オブジェクトが複数行のテキストである場合にのみ発生することがわかりました