- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我的应用程序使用多个 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 )
由于我不知道究竟是我们代码的哪一部分导致了崩溃,所以我不确定发布哪些示例代码会有帮助。我更有兴趣听听是否有人看到过类似的情况,或者可能对在何处或如何进一步调查此问题有建议。
我能够通过执行以下操作重现此问题:
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/
使用 WSDL2ObjC 我得到了很多类,它们是 NSString 的子类。我发现初始化这些类的任何对象的 NSString 值很麻烦。 假设我的类(class)是这样的: @interface mC
当调用 +[NSURL URLWithString:] 时,我有两个构建 URL 的选项: [[@"http://example.com" stringByAppendingPathComponent
我需要删除字符串末尾的空格。我怎样才能做到这一点?示例:如果字符串是 "Hello " 它必须变成 "Hello" 最佳答案 摘自这里的答案:https://stackoverflow.com/a/5
NSString *test = @"ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 如何将此字符串转换为字节? 最佳答案 NSData *bytes = [test dataUsingEn
我对 NSString 变量有疑问。 .h 文件 NSString *strDeleteFilePath; @property (nonatomic,retain) NSString*
我对这个功能有疑问: - (instancetype)initWithCenter:(CLLocationCoordinate2D)center
如果我有方法 - (void) myMethod:(NSString *)string { [Object anothermethodWithString:string]; } 我打电话 [O
ios 中初始化字符串变量的两种方式有什么区别(,adv/disadv)? NSString *var = @"value" 和 NSString *var =[ [NSString alloc] i
我认为这个问题已经足够清楚了,但仍然 - 有什么区别: NSString *string = @"Hello world!"; 和 NSString *string = [[NSString allo
我正在尝试将 NSString 转换为单个字符。当我写 [[NSLocale] currentLocale] objectForKey:NSLocaleDecimalSeparator] 时,我得到
我有指示制作一个前缀方法,该方法在每个位置采用两个字符串,其中 mask = 0 并且第一个字符串 = 第二个字符串,直到不满足这些条件为止,即您的前缀 NSString。 我做了尝试,但由于某种原因
我有 3 个 NSString 和 1 个带值的 NSArray,我尝试将所有字符串转换为一个: string01 = [string01 stringByAppendingString:[numbe
我有一个包含以下文本的 NSString: You can now download "file.png" from "http://www.example.com/RANDOM.png" 如何使用该
我有一个完整的 URL,比方说 http://www.mywebsite.com//Folder /Detals /Final Image /La Image Logo.jpg 在这个NSString
在某些情况下,我可能有一个包含多个单词的 NSString,其中一些是重复的。我想要做的是采用如下所示的字符串: One Two Three Three Three Two Two Two One O
所以我有一个 NSString,让我们说:NSString *mainString = @"My Name is Andrew (I like computers)";我想从 mainString 中
这是我的职责。首先 println 将正确的散列打印到控制台,但在下一行程序崩溃。你能帮助我吗? func sha256(string: NSString) -> NSString { var
我刚刚看到一行由同事编写的代码,我以前从未在 Obj-C 中见过它。它看起来形式很糟糕,我想更改它,但它似乎有效(应用程序按预期工作),我什至不知道将其更改为什么。 NSString **string
我花了很长时间寻找一种获取 nsstring 对象的匹配计数的方法。但我找不到。如何获取 String_one 和 String_Two 的匹配计数?我需要你的帮助.. NSString *Strin
在我看来,我正在处理的代码应该是这样写的: if (!instructions) { instructions = [[UITextView alloc] init]; ins
我是一名优秀的程序员,十分优秀!