ios - App stürzt uitextview ab, wenn Benutzer Eingaben über Sprache tätigen



objective-c crash (1)

Das erste, was zu tun ist, Unterklasse UITextView und in dieser Unterklasse override func accessibilityActivate () -> Bool. Stellen Sie dann einen Delegaten her, der behandelt, was passiert, wenn der TextView aktiviert ist, und rufen Sie ihn über die überschriebene Methode auf.

Setzen Sie dann den Delegaten des TextView basierend auf UIAccessibilityIsVoiceOverRunning (), wenn also VoiceOver läuft, dann setzen Sie UITextViewDelegate auf Null, was den Absturz verhindert und dann die Aktivierungsaktion von der Methode gehandhabt wird, die Sie in der obigen Unterklasse überschreiben. Zum Schluss richten Sie einen Listener für UIAccessibilityVoiceOverStatusChanged ein und setzen UITextViewDelegate auf "nil", wenn Sie von "off" auf "on" wechseln und die ursprüngliche Delegierungsklasse für das andere Szenario festlegen.

App stürzt ab, wenn der Benutzer Text über Sprache in UITextView eingibt,

Absturzmethode

mache textview first responder, indem du darauf klickst, dann drücke auf die mic-taste in der tastatur, dann sprache etwas und drücke dann Done the app stürzt ab ..

Nichts besonderes ist mit uitextview in meinem Fall getan ..

Konsolenausgabe

*

Beenden der App aufgrund der nicht abgefangenen Ausnahme 'NSInvalidArgumentException', Grund: 'Versuch, unveränderliches Objekt mit deleteCharactersInRange zu mutieren:'

  • Erster Wurf Call-Stack: (0x19443c1c0 0x192e7455c 0x19443c108 0x1943d9b18 0x19a58d138 0x194e1a3c4 0x1943fd958 0x1943fb9e4 0x194e1a218 0x19aa9aac8 0x19aa9b270 0x19aa9a0b4 0x19aa97680 0x19aa979f0 0x19aa9afd0 0x19aa9b50c 0x19cdbf800 0x19cdbf064 0x19cdbf74c 0x19cdc4354 0x1005e925c 0x1005e921c 0x1005ee284 0x1943e9f2c 0x1943e7b18 0x194316048 0x195d99198 0x19a2e9628 0x19a2e4360 0x1001e03c4 0x1932f85b8) libc ++ abi.dylib: mit abgefangene Ausnahme des Beenden Geben Sie NSException ein

auf weiterem debugging habe ich (indem ich bt in der Konsole eingebe) es mir gegeben

* thread #1: tid = 0x645a4, 0x000000019340a014 libsystem_kernel.dylib`__pthread_kill + 8, queue =

'com.apple.main-thread', stop Grund = Signal SIGABRT Rahmen # 0: 0x000000019340a014 libsystem_kernel.dylib __pthread_kill + 8 frame #1: 0x00000001934d1460 libsystem_pthread.dylib pthread_kill + 112 Rahmen # 2: 0x000000019337e3f4 libsystem_c.dylib abort + 140 frame #3: 0x0000000192e492d4 libc++abi.dylib abort_message + 132 Rahmen # 4: 0x0000000192e66cc0 libc ++ abi.dylib default_terminate_handler() + 304 frame #5: 0x0000000192e74844 libobjc.A.dylib _objc_terminate () + 124 Rahmen # 6: 0x0000000192e6366c libc + + abi.dylib std::__terminate(void (*)()) + 16 frame #7: 0x0000000192e62f84 libc++abi.dylib __cxa_throw + 136 Rahmen # 8: 0x0000000192e74690 libobjc.A.dylib objc_exception_throw + 364 frame #9: 0x000000019443c108 CoreFoundation + [NSException Raise: Format:] + 116 Frame # 10: 0x00000001943d9b18 CoreFoundation mutateError + 132 frame #11: 0x000000019a58d138 UIKit - [UIScrollView Beschreibung] + 104 Frame # 12: 0x0000000194e1a3c4 Foundation _NSDescriptionWithLocaleFunc + 108 frame #13: 0x00000001943fd958 CoreFoundation _NSDescriptionWithLocaleFunc + 108 frame #13: 0x00000001943fd958 CoreFoundation __CFStringAppendFormatCore + 7996 Rahmen # 14: 0x00000001943fb9e4 Corefoundation _CFStringCreateWithFormatAndArgumentsAux2 + 244 frame #15: 0x0000000194e1a218 Foundation + [NSString string:] + 68 Rahmen # 16: 0x000000019aa9aac8 UIKit -[UIDictationController insertSerializedDictationResult:withCorrectionIdentifier:] + 144 frame #17: 0x000000019aa9b270 UIKit __98 - [UIDictationController finishDictationRecognitionWithPhrases: Sprachmodell: correctionIdentifier:] _ block_invoke + 464 Rahmen # 18: 0x000000019aa9a0b4 UIKit -[UIDictationController performIgnoringDocumentChanges:] + 48 frame #19: 0x000000019aa97680 UIKit - [UIDictationController _runFinalizeOperation:] + 56 Rahmen # 20: 0x000000019aa979f0 UIKit -[UIDictationController setState:] + 612 frame #21: 0x000000019aa9afd0 UIKit - [UIDictationController finishDictationRecognitionWithPhrases: languageModel: correctionIdentifier:] + 552 frame # 22: 0x000000019aa9b50c UIKit -[UIDictationController dictationConnection:didRecognizePhrases:languageModel:correctionIdentifier:] + 204 frame #23: 0x000000019cdbf800 AssistantServices -[UIDictationController dictationConnection:didRecognizePhrases:languageModel:correctionIdentifier:] + 204 frame #23: 0x000000019cdbf800 AssistantServices __105- [AFDictationConnection_tellSpeechDelegateDidRecognizeSpeechPhrases: languageModel: correctionIdentifier:] _ block_invoke + 80 frame # 24: 0x000000019cdbf064 AssistantServices -[AFDictationConnection _dispatchCallbackGroupBlock:] + 240 frame #25: 0x000000019cdbf74c AssistantServices - [AFDictationConnection _tellSpeechDelegateDidRecognizeSpeechPhrases: Sprachmodell: correctionIdentifier:] + 356 Rahmen # 26: 0x000000019cdc4354 AssistantServices __101-[AFDictationConnectionServiceDelegate speechDidRecognizePhrases:usingSpeechModel:correctionContext:]_block_invoke + 76 frame #27: 0x00000001005e925c libdispatch.dylib _dispatch_call_block_and_release + 24 Rahmen # 28: 0x00000001005e921c libdispatch.dylib _dispatch_client_callout + 16 frame #29: 0x00000001005ee284 libdispatch.dylib _dispatch_main_queue_callback_4CF + 1200 Rahmen # 30: 0x00000001943e9f2c CoreFoundation __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 frame #31: 0x00000001943e7b18 CoreFoundation __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 frame #31: 0x00000001943e7b18 CoreFoundation __CFRunLoopRun + 1660 Rahmen # 32: 0x0000000194316048 Corefoundation CFRunLoopRunSpecific + 444 frame #33: 0x0000000195d99198 GraphicsServices GSEventRunModal + 180 Rahmen # 34: 0x000000019a2e9628 UIKit -[UIApplication _run] + 684 frame #35: 0x000000019a2e4360 UIKit UIApplicationMain + 208 * Rahmen # 36: 0x00000001001e03c4 Motto-Mobiles main(argc=1, argv=0x000000016fdd3ab8) + 124 at main.m:16 frame #37: 0x00000001932f85b8 libdyld.dylib Start + 4

Code verwendet

@property(strong,nonatomic) UITextView *addressTextView;
- (void)viewDidLoad {
    [super viewDidLoad];
    addressTextView.delegate = self;
    addressTextView.text = [self.dictionaryEditObject objectForKey:@"location"];
}
-(void)textViewDidBeginEditing:(UITextView *)textView
{

}
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
{
    NSLog(@"textViewShouldBeginEditing:");

    return YES;
}

-(void)textViewDidEndEditing:(UITextView *)textView
{
    NSLog(@"textViewDidEndEditing");
}

versucht auf iOS: 10.2.9.3 Gerät: iPad, iPod, iPhone 5s Absturz auf jedem Gerät

Jede Hilfe würde geschätzt werden Danke





voice