小编Aus*_*lon的帖子

如何获得WatchOS4 heartRateVariabilitySDNN并使用它?

我正在尝试使用heartRateVariabilitySDNN.我通过查询成功获取heartRate,并使用以下代码获取heartRateVariabilitySDNN但不知道它是如何工作的.此外,没有关于此查询或Apple示例代码的正确文档.

func createheartRateVariabilitySDNNStreamingQuery(_ workoutStartDate: Date) -> HKQuery? {

    let typeHeart = HKQuantityType.quantityType(forIdentifier: .heartRateVariabilitySDNN)
    let predicate: NSPredicate? = HKQuery.predicateForSamples(withStart: workoutStartDate, end: nil, options: HKQueryOptions.strictEndDate)

    let squery = HKStatisticsQuery(quantityType: typeHeart!, quantitySamplePredicate: predicate, options: .discreteAverage, completionHandler: {(query: HKStatisticsQuery,result: HKStatistics?, error: Error?) -> Void in
        DispatchQueue.main.async(execute: {() -> Void in

            print("got: \(String(describing: result))")
        })
    })

    return squery
}
Run Code Online (Sandbox Code Playgroud)

ios swift healthkit watchkit watchos-4

12
推荐指数
0
解决办法
356
查看次数

如何在Apple Watch Extension/App和iOS App之间建立通信渠道

我正在探索WatchKit SDK.

当我有一个WatchKit应用程序时,是否可以从WatchKit应用程序上的iPhone应用程序设置值(例如文本,设置)?我可以从iPhone应用程序调用WatchKit应用程序扩展中的函数吗?

如果有人设法做到这一点,他/她可以发布一个例子吗?谢谢!

iphone ios apple-watch watchkit

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

你如何在 UIKit 视图控制器和它呈现的 SwiftUI 视图之间共享数据模型?

我的数据模型属性在我的表视图控制器中声明,并且 SwiftUI 视图以模态呈现。我想要提供的Form输入来操作数据模型。我在数据流中找到的资源只是在 SwiftUI 视图之间,而我在 UIKit 集成中找到的资源是在 SwiftUI 中嵌入 UIKit 而不是相反。

此外,对于值类型(在我的情况下是结构)数据模型是否有一种很好的方法,或者是否值得将其重新建模为一个类以便它是一个引用类型?

uikit swift swiftui combine

6
推荐指数
2
解决办法
1658
查看次数

将 SwiftUI 警报或操作表绑定到值类型模型属性的可选性(当属性为零时显示视图)的好方法是什么?

SwiftUI 警报和操作表采用布尔绑定,但我希望我的警报和操作表在模型属性为 时显示nil。模型属性是var servicePlayer: Player!,我希望在尚未选择网球发球运动员时显示警报或操作表 ( nil),但我不确定什么是解决此问题的好方法。

我的模型层由值类型组成struct,因此目前将属性标记为@Published不是一个选项。class将我的整个模型层重构为能够采用组合的引用类型听起来并不值得(我依赖于模型实例作为值类型副本来撤消和重做),但我可能是错的。

struct Match: Codable {
    ...
    var servicePlayer: Player!
    ...
}

.alert(isPresented: $isPresented) {
    Alert(title: Text("Who will serve?"),
              primaryButton: .default(Text("You")) {
                match.servicePlayer = .playerOne
            },
              secondaryButton: .default(Text("Opponent")) {
                match.servicePlayer = .playerTwo
            })
}
Run Code Online (Sandbox Code Playgroud)

绑定$isPresented只是一个占位符。从servicePlayer一开始nil,我们的想法是首先显示警报,但稍后在网球比赛中再次出现发球手nil但尚未选择时再次出现。

ios swift swiftui

5
推荐指数
1
解决办法
1047
查看次数

Xcode 不安装 watchOS 应用程序以在设备上进行调试

这是在 watchOS 4.3 beta (15T5165e) 和 Xcode 9.3 beta (9Q98q) 上,但我不认为这是因为它们处于测试阶段,因为另一个 WatchKit 项目在设备上运行得很好。我尝试取消配对/修复,重新启动 iPhone/Watch/macOS/Xcode(同时确保在手表上点击“信任这台电脑”),但 Xcode 在 WatchKit 方案中仍然显示“正在运行”,而没有实际安装和运行 watchOS应用程序,最终说“手表应用程序启动超时”。

xcode watchkit watchos

4
推荐指数
1
解决办法
871
查看次数

如何预览包含与其父视图状态的绑定的视图?

我将此视图作为其父视图的工作表呈现

struct NamesView: View {
    @Binding var match: Match

    var body: some View {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

由于match事实来源位于呈现此NamesView工作表的父视图中,因此在构造视图时,我会$match按预期传入绑定和数据流。

但是,在预览提供程序中构造此视图时

struct NamesView_Previews: PreviewProvider {
    static var previews: some View {
        NamesView()
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器表示NamesView()需要一个match类型的参数Binding<Match>Match作为将此视图呈现为工作表的父视图)。我不确定从这里开始的好方法是什么,或者这是否是 SwiftUI 的限制。

swiftui

3
推荐指数
1
解决办法
552
查看次数

如何支持滑动删除具有组合布局的 UICollectionView 列表中的行?

以前对于表视图,这是在UITableViewDataSource委托回调中完成的tableView(_:commit:forRowAt:)与新集合视图关联的 API 中是否有等效功能,或者推荐的实现方法?

uikit ios uicollectionview uicollectionviewcompositionallayout

3
推荐指数
1
解决办法
4422
查看次数

是否可以同时在多个模拟器设备上进行iOS XCUITesting?

我有一个应用程序,它将在五个不同的设备上生产,使用相互交谈MultipeerConnectivity.我有一个bash脚本,可以在五个不同的模拟器上启动应用程序.这很好用,但是我每次都要点击每个设备来测试所有内容.

所以我想也许XCUITest可以帮助自动执行此操作,并删除这些外部bash脚本依赖项(希望在Xcode/Swift中执行所有操作).我试过这样一个天真的方法:

func testExample() {
    // Use recording to get started writing UI tests.
    // Use XCTAssert and related functions to verify your tests produce the correct results.

  let app1 = XCUIApplication(bundleIdentifier: "com.madebymist.qdb-ios")
  let app2 = XCUIApplication(bundleIdentifier: "com.madebymist.qdb-ios")
  app1.launch()
  app1.buttons["Select Group"].tap()
  app1.sheets.buttons["Group one"].tap()
  app1.buttons["Host"].tap()

  // Launch and test App 2
  app2.launch()
  app2.buttons["Select Group"].tap()
  app2.sheets.buttons["Group one"].tap()
  app2.buttons["Join"].tap()

}
Run Code Online (Sandbox Code Playgroud)

但是,这只是在同一个模拟器中逐个推出应用程序.

那么,有没有办法在多个模拟器设备上同时实现XCUITest?(最好在Xcode/Swift中,但其他选项也可以使用).

ios ios-simulator swift xcuitest

2
推荐指数
1
解决办法
277
查看次数

Watch Complication 导致 dyld 崩溃:找不到符号:_OBJC_CLASS_$_CLKFullColorImageProvider

dyld: Symbol not found: _OBJC_CLASS_$_CLKFullColorImageProvider在 watchOS 4 中遇到这个错误,但在 watchOS 5 中没有,我相信它与我下面的复杂代码有关,但不知道为什么......据我所知编译器不应该CLKFullColorImageProvider像我一样寻找已经阻止了if #available(watchOSApplicationExtension 5.0, *)

class Complication: NSObject, CLKComplicationDataSource {
    func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
        if #available(watchOSApplicationExtension 5.0, *) {
            if complication.family == .circularSmall {

                let template = CLKComplicationTemplateCircularSmallRingImage()
                guard let image = UIImage(named: "Circular") else { handler(nil); return}
                template.imageProvider = CLKImageProvider(onePieceImage: image)
                let timelineEntry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: template)
                handler(timelineEntry)

            } else if complication.family == .utilitarianSmall {

                let template …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift apple-watch apple-watch-complication

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