微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 在UITextView上按下链接时应用程序崩溃

我在我的iOS应用程序中遇到了一个奇怪的错误,它只发生在设备中.在我的应用程序中,我有一个主页,如果用户按下按钮,我将显示一个FormSheet(关于我们页面).
let storyBoard = UIStoryboard(name: "Utility",bundle: nil);
let aboutUsVC  = storyBoard.instantiateViewControllerWithIdentifier("AboutUs") as! AboutUsViewController;
aboutUsVC.modalPresentationStyle = .FormSheet;
aboutUsVC.preferredContentSize   = CGSize(width: 500,height: 400);
self.presentViewController(aboutUsVC,animated: true,completion: nil);

我在我们页面中放置了一个UITextView,并添加一个链接,因为它的内容

问题1

当我长按该链接时,我在控制台上收到一条警告消息:

<_UIRotatingalertController: 0x13e107200> on which is already presenting

问题2

长按后如果再次点击链接,应用程序崩溃并显示以下消息:

2016-03-16 18:11:37.022 MyApp[938:400786] *** Assertion failure in
-[UITextView startInteractionWithLinkAtPoint:],/buildroot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3512.29.5/UITextView_LinkInteraction.m:377

2016-03-16 18:11:37.023 MyApp[938:400786] *** Terminating app due
to uncaught exception ‘NSInternalInconsistencyException’,reason: ”
*** First throw call stack: (0x184220f48 0x198e47f80 0x184220e18 0x185114a1c 0x18a12de50 0x189d38be4 0x189d2f330 0x189958b5c
0x1897e685c 0x189d3070c 0x1897a58b8 0x1897a263c 0x1841d7bd0
0x1841d5974 0x1841d5da4 0x184104ca0 0x18f184088 0x18981cffc
0x100188368 0x19968a8b8) libc++abi.dylib: terminating with uncaught
exception of type NSException

我认为UIKit造成了这次崩溃.我该如何修复这次崩溃?

更多信息:

>基础SDK:9.2
>部署目标:8.1
> Xcode版本:7.2.1
> iOS设备操作系统版本:9.1

解决方法

正如在 Apple Forum post中提到的,我实现了以下UITextViewDelegate,它解决了我的问题
func textView(textView: UITextView,shouldInteractWithURL URL: NSURL,inRange characterRange: NSRange) -> Bool
{
    UIApplication.sharedApplication().openURL(URL)
    return false  
}

@Louis Tur:谢谢你的链接

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐