ios – UITextField代理跳到100%CPU使用率,并使用键盘快捷键崩溃

ios – UITextField代理跳到100%CPU使用率,并使用键盘快捷键崩溃,第1张

概述所以,我有一个UITextField子类,它是自己的Delegate,并且当使用键盘快捷键崩溃.它最多在CPU上,不会发生错误.没有分配自己作为代表,它的工作没有问题.当它被分配为委托时,即使不使用(可选)方法也会崩溃. 自己尝试一下: 子类UITextField. - (id)initWithFrame:(CGRect)frame{ self = [super initWithFra 所以,我有一个UITextFIEld子类,它是自己的Delegate,并且当使用键盘快捷键时崩溃.它最多在cpu上,不会发生错误.没有分配自己作为代表,它的工作没有问题.当它被分配为委托时,即使不使用(可选)方法也会崩溃.

自己尝试一下:

子类UITextFIEld.

- (ID)initWithFrame:(CGRect)frame{    self = [super initWithFrame:frame];    if (self) {        self.delegate = self;    }    return self;}

它应该崩溃

编辑
回溯:

* thread #1: tID = 0x3bb8d,0x39f14726 libobjc.A.dylib`lookUpImpOrNil + 18,queue = 'com.apple.main-thread,stop reason = signal SIGStop    frame #0: 0x39f14726 libobjc.A.dylib`lookUpImpOrNil + 18    frame #1: 0x39f0dcb6 libobjc.A.dylib`class_respondsToSelector + 34    frame #2: 0x39f1d05c libobjc.A.dylib`-[NSObject respondsToSelector:] + 32    frame #3: 0x323b9242 UIKit`-[UITextFIEld respondsToSelector:] + 46    frame #4: 0x325c88a2 UIKit`-[UITextFIEld customOverlayContainer] + 50    frame #5: 0x325c8730 UIKit`-[UITextFIEld automaticallySelectedOverlay] + 28    frame #6: 0x32554208 UIKit`-[UIKeyboardImpl inputOverlayContainer] + 424    frame #7: 0x32553942 UIKit`-[UIKeyboardImpl _autocorrectPromptRects] + 454    frame #8: 0x323c7530 UIKit`-[UIKeyboardImpl updateautocorrectPrompt:] + 368    frame #9: 0x323e63e0 UIKit`-[UIDelayedAction timerFired:] + 80    frame #10: 0x305fbe6c Foundation`__NSFireTimer + 64    frame #11: 0x2fbe1e86 CoreFoundation`__CFRUNLOOP_IS_CALliNG_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14    frame #12: 0x2fbe1aa2 CoreFoundation`__CFRunLoopDoTimer + 794    frame #13: 0x2fbdfe2a CoreFoundation`__CFRunLoopRun + 1218    frame #14: 0x2fb4a540 CoreFoundation`CFRunLoopRunspecific + 524    frame #15: 0x2fb4a322 CoreFoundation`CFRunLoopRunInMode + 106    frame #16: 0x348812ea GraphiCSServices`GSEventRunModal + 138    frame #17: 0x324011e4 UIKit`UIApplicationMain + 1136    frame #18: 0x0009929c Today`main(argc=1,argv=0x27d79c80) + 164 at main.m:29
解决方法 在使用自委托的UITextFIEld子类时,我遇到同样的问题.如果不可能将委托人更改为自己以外的其他东西,我建议覆盖respondToSelector,而不是实现一个可能返回无效对象的customOverlayContainer方法(你确定它应该是UITextFIEld的一个实例吗?你如何知道iOS不要求UIVIEw或CGLayer或任何其他类型的对象?)
-(BOol) respondsToSelector:(SEL)aSelector {    Nsstring * selectorname = NsstringFromSelector(aSelector);    if ([selectorname isEqualToString:@"customOverlayContainer"]) {        NSLog(@"preventing self.delegate == self crash");        return NO;    }    return [super respondsToSelector:aSelector];}
总结

以上是内存溢出为你收集整理的ios – UITextField代理跳到100%CPU使用率,并使用键盘快捷键崩溃全部内容,希望文章能够帮你解决ios – UITextField代理跳到100%CPU使用率,并使用键盘快捷键崩溃所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1098331.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存