Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Strange crash in UITextview undo on iOS 7

I have been receiving a bunch of crash reports that look a lot like the following with different values for the range. Sometimes the range is not 0-x it could be say 2-x

Application Specific Information:* Terminating app due to uncaught exception \'NSRangeException\',reason: \'* -[NSBigMutableString substringWithRange:]: Range {0, 69} out of bounds; string length 0\'

Last Exception Backtrace:
0   CoreFoundation                      0x2e879e83 __exceptionPreprocess + 131
1   libobjc.A.dylib                     0x38bd66c7 objc_exception_throw + 38
2   CoreFoundation                      0x2e879dc5 +[NSException raise:format:] + 112
3   Foundation                          0x2f1a1bd1 -[NSString substringWithRange:] + 120
4   UIKit                               0x311b2815 -[NSTextStorage(UIKitUndoExtensions)     _undoRedoAttributedSubstringFromRange:] + 132
5   UIKit                               0x315d9679 -[_UITextUndoOperationTyping undoRedo] + 296
6   Foundation                          0x2f296453 -[_NSUndoStack popAndInvoke] + 250
7   Foundation                          0x2f2952ef -[NSUndoManager undoNestedGroup] + 454
8   UIKit                               0x3127a147 -[UIApplication alertView:clickedButtonAtIndex:] + 142
9   UIKit                               0x31216449 -[_UIModalItemsCoordinator _notifyDelegateModalItem:tappedButtonAtIndex:] + 144
10  UIKit                               0x3121638d -[_UIModalItemAlertContentView tableView:didSelectRowAtIndexPath:] + 1000
11  UIKit                               0x3111b0cb -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 1078
12  UIKit                               0x311ce863 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 214
13  UIKit                               0x3107e781 _applyBlockToCFArrayCopiedToStack + 316
14  UIKit                               0x30ff67bb _afterCACommitHandler + 430
15  CoreFoundation                      0x2e844f69 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 20
16  CoreFoundation                      0x2e8428f7 __CFRunLoopDoObservers + 286
17  CoreFoundation                      0x2e842c43 __CFRunLoopRun + 738
18  CoreFoundation                      0x2e7ad471 CFRunLoopRunSpecific + 524
19  CoreFoundation                      0x2e7ad253 CFRunLoopRunInMode + 106
20  GraphicsServices                    0x334e72eb GSEventRunModal + 138
21  UIKit                               0x31062845 UIApplicationMain + 1136
22  MyApp                               0x00071f3b main (main.m:18)
23  libdyld.dylib                       0x390cfab7 start + 2
like image 446
T.Leavy Avatar asked Dec 23 '13 21:12

T.Leavy


1 Answers

If you set UITextView's text property after user edit it, it seems that you need to call [textView.undoManager removeAllActions] to clear undo history.

like image 145
hoshi Avatar answered Sep 20 '22 17:09

hoshi