我有一个 SwiftUI 视图,我使用 UIHostingController 将其嵌入到现有的 UIViewController 中。SwiftUI 视图很简单,事实上我可以将其简化为以下代码并重现该问题:
let hostingController = UIHostingController(rootView: Button {
print("tapped")
} label {
Text("Tap")
}
Run Code Online (Sandbox Code Playgroud)
HostingController 作为子视图添加到我现有的视图控制器中,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(hostingController.view)
// Code to set up autolayout constraints omitted.
addChild(hostingController)
hostingController.didMove(toParent: self)
}
Run Code Online (Sandbox Code Playgroud)
该按钮在画布预览中可点击,但在模拟器或真实设备上则不可点击。没有手势识别器或其他视图覆盖 UIHostingController 的视图。我尝试使用.onTapGesture(perform:)
按钮而不是按钮,但这也不起作用。为了让事情变得更奇怪,我可以添加一个 ScrollView 作为我的 SwiftUI 和滚动工作的子视图。为什么我的按钮不起作用?
使用 API 编写的 Xcode 性能测试XCTest.measure()
通过或失败取决于“基线”性能,必须在 Xcode 中手动设置并存储在ProjectName.xcodeproj/xcshareddata/xcbaselines/
. 从 Xcode 13.2.1 开始,只能为当前设备 + 模拟器组合设置这些基线。例如,如果您在另一台具有不同处理器的计算机上运行性能测试,它将忽略您之前设置的基准。这是有道理的,因为不同的配置可能具有非常不同的性能特征。
但这在无头 CI 服务器上运行性能测试时会出现问题。如何设置无头 CI 服务器的性能基准?
我无权访问 Xcode UI,并且xcodebuild
似乎没有提供设置基线的方法。
需要明确的是,测试确实在我的 CI 服务器上成功执行,但它们永远不会失败,因为未设置基线。
我想每天在特定时间在 Slack 中触发一个斜杠命令。具体来说,我想在每晚午夜清除我的状态。
从文档看来,唯一的方法是通过Incoming Webhook。但是,使用以下 JSON 正文进行 POST 只会在 Slack 中创建一条消息,/status clear
实际上并未运行该命令。
'{"text":"/status clear"}'
Run Code Online (Sandbox Code Playgroud)
它还代表与 webhook 关联的应用程序发布消息,而不是在我的用户名下。
有没有办法从官方 Slack 应用程序外部为我的用户调用斜杠命令?