在 iOS 13 上录制 UI 测试似乎不起作用。我按下录制按钮,应用程序运行,当我与它交互时,不会像您期望的那样根据这些操作生成代码。这也发生在一个新项目上。
这是一个错误还是我们需要做任何新的配置。我不知道该怎么做。我想我观看了所有测试 WWDC 会议,但不记得有任何提及。
如果我将模拟器更改为 iOS 12,它会按预期工作。
我有一个应用程序,我正在向用户显示他正在做的事情的计时器.每当活动进入后台(通过主页按钮或返回)时,我保存该时间(以秒为单位),当活动恢复时,我想继续从同一时间运行计时器.用户可能会从列表中选择一个不同的项目,时间也不同,他也可能会关闭手机...我可以节省计时器的时间,但我不能用开始时间设置它.
从Chornometer API,该方法setBase()指出:
设置计数定时器参考的时间.
根据我的理解,这意味着如果我将此值设置为currentTime,它将从0开始计数.现在,如果我希望它以17s开始,我想将基数设置为currentTime减去17秒前的时间.所以类似于:
setBase(system.currentTimeMillis() - (17 * 1000)).
Run Code Online (Sandbox Code Playgroud)
但是这不起作用,它始终以0开始!
我在这里阅读了一些其他的主题,但没有一个答案有帮助.它始终以0开头!
提前致谢.
我有一个SwiftUI视图:
struct CatView : View {
@State var eyesOpened: Bool = false
var body: some View {
Image(uiImage: eyesOpened ? #imageLiteral(resourceName: "OpenedEyesCat") : #imageLiteral(resourceName: "ClosedEyesCat"))
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其与常规UIViewController集成。
let hostingVC = UIHostingController<CatView>(rootView: cat)
addChild(hostingVC)
view.addSubview(hostingVC.view)
hostingVC.view.pinToBounds(of: view)
Run Code Online (Sandbox Code Playgroud)
现在在UIViewController中,如果我尝试设置eyesOpened属性,则会得到一个
Thread 1: Fatal error: Accessing State<Bool> outside View.body
我们应该如何做这项工作?SwiftUI视图是否不应该在这种情况下工作?
我想要一个Subject(类似于CurrentValueSubject)我可以发布到,但这验证了我发送的值。例如,我想验证输入是否强制在一系列值之间,例如 1 和 10。如果高于最大值,则通过最大值,如果低于最小值,则通过最小值。
请不要告诉我在订阅代码上过滤结果,因为这是我试图避免的。那个重复。
伪代码将是:
let intSubject = ValidatedValueSubject<Int>(value: 5, min: 1, max: 10)
intSubject.sink { value in print(value) }
intSubject.send(-10)
intSubject.send(5)
intSubject.send(15)
Run Code Online (Sandbox Code Playgroud)
我希望这样产生:
5
1
5
10
Run Code Online (Sandbox Code Playgroud)
显然用CurrentValueSubject我无法达到那种效果。我尝试创建自己的自定义主题,但似乎无法使其正常工作。
有人告诉我我应该以不同的方式看待我的问题,因为我想这太容易了,不需要自定义Subject.
用例:
我有一个设置类,它会在“设置”屏幕和其他任何地方更新,当值发生变化时,我希望屏幕做出相应的反应。在ValidatedValueSubject此设置中生活对象。
设置需要公开,Subject以便任何屏幕都可以对属性的更改做出反应。
我的习惯做法Subject如下:
5
1
5
10
Run Code Online (Sandbox Code Playgroud) 我正在使用postgresql在数据库上存储一些日期.
在我的应用程序中,它是完全了解时区的基础,我正在进行一些基本的测试,在客户端,服务器和数据库之间.
我从浏览器的应用程序中发送日期,我在GWT中读取了postgresql上的日期.
我的测试:
客户端始终处于GMT时区,我每个案例的发送时间总是相同.
13/04/2012 00:00:00 GMT + 00
在posgres我正在改变每个测试的时区.在测试之间,我正在从表中删除所有日期.
要更改posgres上的时区,我在{PostgreSQL HOME}\9.1\data\postgresql.conf上设置timezene到我想要的时间.
测试:客户:13/04/2012 00:00:00 GMT + 00
第1次测试 - posgres EST - 12/04/2012 19:00:00-05根据postgresql文档 EST = GMT - 5
第2次测试 - posgres GMT + 5 - 12/04/2012 19:00:00-05
第3次测试 - posgres GMT - 5 - 13/04/2012 05:00:00 + 05
现在我的问题上升了:根据文档,EST = GMT - 5.那么为什么我会以相反的方式阅读呢?我在这里错过了什么吗?
编辑
我测试的技术方面:
在客户端我发送此信息:2012年4月13日00:00:00 GMT + 00.
在服务器上我使用JDBC在db上编写:
将java.utils.date转换为java.sql.timestamp
java.sql.Timestamp sqlTimeStamp = new java.sql.Timestamp(date.getTime());
(日期是来自客户端的java.utils.Date)
设置准备好的声明
PreparedStatement ps = con.prepareStatement("INSERT INTO teste.dates (dates_tz, dates_ntz) VALUES …