【问题标题】:UItextView crashes when I cancel add to contacts in popover当我取消添加到弹出窗口中的联系人时,UItextView 崩溃
【发布时间】:2015-09-28 22:27:27
【问题描述】:

我在 UITextView 中添加了电话号码高亮显示。

self.textView.dataDetectorTypes = UIDataDetectorTypeAll;

如果我只是:

  • 选择电话号码
  • 按添加到联系人
  • 创建新联系人
  • 完成

一切都很好。但如果我取消添加并尝试退出此菜单,应用程序将崩溃。

  • 选择电话号码
  • 按添加到联系人
  • 在 Popover 外按(自动返回)
  • 再次按外部弹出框(崩溃)

所以...如果我取消在标准控件中添加的联系人,应用程序会崩溃。它在私有方法中崩溃(-[UITextView _finishHandlingInteraction:] UITextView_LinkInteraction.m:335)。

我试图找到有关这些方法的一些信息,或有关相同崩溃的一些信息。但这并没有帮助=(

iOS 8.4

崩溃日志:

-[MYCustomTextView _finishHandlingInteraction:] 中的断言失败,/SourceCache/UIKit/UIKit-3347.44/UITextView_LinkInteraction.m:335

* 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“” * 首先抛出调用栈: (0x2ad85fef 0x39171c8b 0x2ad85ec5 0x2ba84f17 0x2eab9a4b 0x2e76f2b7 0x2e76f793 0x2e76f735 0x2e76f52d 0x2eac4115 0x2e55806b 0x2e4070f9 0x2e820f9b 0x2e3d0181 0x2e3ce05f 0x2e4054d9 0x2e404ddd 0x2e3dafe5 0x198f2f 0x2e6518fb 0x2e3d99f9 0x2ad4bfaf 0x2ad4b3bf 0x2ad49a25 0x2ac96201 0x2ac96013 0x32472201 0x2e43aa59 0x1afa6b 0x396fdaaf) libc++abi.dylib:以 NSException 类型的未捕获异常终止

对于 iOS 9(13A4293g) 斗鱼:

*** -[MYCustomTextView _finishHandlingInteraction:] 中的断言失败,/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3486.4/UITextView_LinkInteraction.m:342

* 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“” * 首先抛出调用栈: (0x24d69153 0x3659ee0f 0x24d69029 0x25b4862d 0x297c1867 0x297c2397 0x29362041 0x2936267b 0x293625e3 0x29362315 0x297cf597 0x29408299 0x29454123 0x290dff13 0x28f77189 0x294538f3 0x28f39ecb 0x28f37ab1 0x28f75201 0x28f7494b 0x28f469b5 0x1679e3 0x28f4533d 0x24d2c81b 0x24d2c409 0x24d2a74b 0x24c7d229 0x24c7d015 0x2dd25bb9 0x28faca7d 0x17e523 0x36d07873) libc++abi.dylib:以 NSException 类型的未捕获异常终止

  • 测试:
    • iOS 7.1(iPad 模拟器)_ 不要崩溃
    • iOS 8.4(iPad 模拟器)_崩溃
    • iOS 8.3 (iPad 4) _ 崩溃
    • iOS 8.3 (iPad mini) _ 崩溃
    • iOS 8.4 (iPad mini 3) _ 崩溃
    • iOS 9 斗鱼 (iPad mini) _ 崩溃

【问题讨论】:

  • 您能否在按下添加到联系人时显示与处理相关的代码?
  • 我试图找到相同的,但它是标准控制。如果将 UIDataDetectorTypeAll 设置为 UITextView。 Cocoa 会自动突出显示链接、电话和电子邮件。并自动显示您可以在屏幕截图中看到的弹出框。现在我受不了了=(
  • 好的,我现在明白你的问题了。

标签: ios objective-c crash uitextview datadetectortypes


【解决方案1】:

这是 iOS 核心的问题。我写信给苹果支持。他们建议我在 iOS 9 beta 4 上测试它。现在它不会崩溃。但是在日志中发布了很多奇怪的消息。无论如何,现在它不是讨论的主题。它适用于苹果公司的人。所以这就是为什么。

【讨论】:

  • 酷,感谢您的回答。所以更新iOS版本是唯一的办法。
  • 我已经写信给苹果支持。一个月后,他们建议我在 ios 9 斗鱼上测试它(我不记得这个斗鱼的数量了)。崩溃已修复。但是日志中出现了很多消息。我认为它在 iOS9 中运行良好,但我没有检查它。希望对你有帮助 =)
【解决方案2】:

添加到联系人调用的视图似乎仍在编辑中,如果您在此期间结束该视图,它将崩溃。您应该尝试强制结束 Create New Contact 视图以便存储文本。也许尝试这样的事情:

- (void) viewWillDisappear: (BOOL) animated {
  [super viewWillDisappear: animated];
  [self.view.window endEditing: YES]; //force the view to end here
  }

【讨论】:

  • 感谢您的关注,我会尝试使用您的提议。
  • 很遗憾,但我无法使用您的解决方案。因为是标准控制=(
  • 对,它看起来像一个错误。您是否有机会在多个 iOS 版本上试用此功能?
  • 好主意,我在我的问题中添加了一些关于它的信息。我将在最近的时间内在 iOS 9 斗鱼上测试我的问题。
  • 所以,iOS 9斗鱼也有同样的问题(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多