小编Yur*_*val的帖子

在xCode 7.1中使用警报的UITesting

我正在xCode 7.1中编写UITests并且在测试警报时遇到问题(在我的情况下允许通知).在创建测试时,xCode会编写以下代码:

app.alerts["\U201cAppName\U201d Would Like to Send You Notifications"].collectionViews.buttons["OK"].tap()
Run Code Online (Sandbox Code Playgroud)

哪会立即导致错误:

文字中的转义序列无效

所以我用以下代码替换了xCode的代码:

app.alerts["\u{201c}AppName\u{201d} Would Like to Send You Notifications"].collectionViews.buttons["OK"].tap()
Run Code Online (Sandbox Code Playgroud)

但是当我运行UITest时,它失败并显示消息:

UI测试失败 - 未找到警报的匹配项

代码相同

app.alerts["“AppName” Would Like to Send You Notifications"].collectionViews.buttons["OK"].tap()
Run Code Online (Sandbox Code Playgroud)

我也试过了

app.alerts.collectionViews.buttons["OK"].tap()
Run Code Online (Sandbox Code Playgroud)

正如人们在这里所建议的,但同样的故事

我相信很多人在xCode 7.1中的UITesting期间遇到了这样的问题

请分享您的经验或任何解决方案.提前致谢!

xcode unit-testing alerts ios swift

7
推荐指数
1
解决办法
2948
查看次数

UITextView startInteractionWithLinkAtPoint仅崩溃iOS 11

因此,当用户与URL链接进行交互时,我会在UItextview中遇到崩溃.所有崩溃报告仅限iOS版本11.这看起来像iOS 9中众所周知的bug,但是没有单个报告iOS版本低于11,而且在报告中我发现了有趣的行:

UITextGestureClusterLinkInteract smallDelayRecognizer:
Run Code Online (Sandbox Code Playgroud)

里面传来与iOS 11(http://developer.limneos.net/?ios=11.0&framework=UIKit.framework&header=UITextGestureClusterLinkInteract.h).无论如何,现在我用它来修复它

@available(iOS 10.0, *)
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
    UIApplication.shared.openURL(URL)
    return false
}
Run Code Online (Sandbox Code Playgroud)

这不是很酷,因为你丢失了动作表菜单.我的假设是它是由3D触摸引起的(比如以前版本中的长按),但是如果我检测到3D触摸(75%,甚至是最大力的50%)并禁用此特定手势的链接交互 - 问题仍然出现.有没有人对这个特殊问题有一些经验,有更优雅的解决方法?

uitextview uigesturerecognizer ios swift ios11

7
推荐指数
1
解决办法
819
查看次数