gpt4 book ai didi

ios - 神秘崩溃与 NSString 方法 rangeOfComposedCharacterSequenceAtIndex :

转载 作者:技术小花猫 更新时间:2023-10-29 11:23:48 26 4
gpt4 key购买 nike

我的应用程序使用多个 UITextView,我们从用户那里收到了一份我们无法重现的崩溃报告。

崩溃报告(似乎)不包含我们的任何代码,并在 NSString 方法 rangeOfComposedCharacterSequenceAtIndex:: 中出现 NSInvalidArgumentException 崩溃>,它不是由我们的代码直接调用的,但似乎是由框架调用的。

这是崩溃报告:

0  CoreFoundation    __exceptionPreprocess + 130
1 libobjc.A.dylib objc_exception_throw + 38
2 CoreFoundation -[NSException initWithCoder:]
3 Foundation -[NSString rangeOfComposedCharacterSequenceAtIndex:] + 88
4 UIKit __74-[UITextInputController _validCaretPositionFromCharacterIndex:downstream:]_block_invoke + 328
5 UIFoundation -[NSTextStorage coordinateReading:] + 36
6 UIKit -[UITextInputController _validCaretPositionFromCharacterIndex:downstream:] + 218
7 UIKit __52-[UITextInputController _characterPositionForPoint:]_block_invoke + 1112
8 UIFoundation -[NSLayoutManager(TextLocking) coordinateAccess:] + 46
9 UIKit -[UITextInputController _characterPositionForPoint:] + 224
10 UIKit -[UITextSelection setSelectionWithFirstPoint:secondPoint:] + 56
11 UIKit -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) twoFingerRangedSelectGesture:] + 386
12 UIKit _UIGestureRecognizerSendActions + 196
13 UIKit -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 1138
14 UIKit ___UIGestureRecognizerUpdate_block_invoke + 48
15 UIKit _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 218
16 UIKit _UIGestureRecognizerUpdate + 282
17 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 20
18 CoreFoundation __CFRunLoopDoObservers + 284
19 CoreFoundation __CFRunLoopRun + 730
20 CoreFoundation CFRunLoopRunSpecific + 522
21 CoreFoundation CFRunLoopRunInMode + 106
22 GraphicsServices GSEventRunModal + 138
23 UIKit UIApplicationMain + 1136
24 main.m line 16
25 libdyld.dylib start + 2

( https://gist.github.com/timarnold/6981caa6a1ee2b98c2fe )

由于我不知道究竟是我们代码的哪一部分导致了崩溃,所以我不确定发布哪些示例代码会有帮助。我更有兴趣听听是否有人看到过类似的情况,或者可能对在何处或如何进一步调查此问题有建议。

2013-11-21更新

我能够通过执行以下操作重现此问题:

  • 向我的 UITextView 添加一些文本,包括结尾的换行符 (\n)
  • 让我的应用强制 UITextView 退出第一响应者状态
  • 让我的应用为我的 UITextView 分配第一响应者状态,然后点击以将光标插入字符串末尾(换行符位置附近)

之后应用程序崩溃并出现上述报告。

我试图在一个空的 Xcode 项目中创建它,只有一个 UITextView 而没有其他任何东西,但无法这样做。似乎我的应用程序中发生了一些与 UITextView 合谋导致崩溃的事情。很想知道是什么,但是在这个项目中我已经解决了这个问题(因为我们对尾随换行符不感兴趣,并且可以修剪它们,从而避免发生崩溃)。

如果有人可以在示例项目中重现此内容,如果这确实是 UITextView 的错误,那么提交雷达会很棒。

感谢@wattson12 和@Johan Kool 的回复导致了解决方案。

最佳答案

我今天遇到了同样的问题,我没有旧设备,但很想看看这在 < 7.0.3 上是否有所不同,因为它现在非常可重现并且以前没有被拾起。我无法真正解释原因,但这是我注意到的和我使用的修复方法:

我看到在以下情况下点击 TextView 会崩溃:

  • 我在文本末尾有一个换行符,并且
  • 我点击了当前文本之外的某处

我的解决方案是从末尾修剪换行符(我使用了一个 while 循环来避免删除任何前导换行符,但如果这不是问题,stringByTrimmingCharactersInSet 会很好)

关于ios - 神秘崩溃与 NSString 方法 rangeOfComposedCharacterSequenceAtIndex :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com