- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我意识到单例并不总是首选,但是根据 Apple 文档,在使用 HealthKit 时“每个应用程序只需要一个 HealthKit 商店。这些是长期存在的对象。创建一次商店,并保留一个引用以供以后使用。 “
为了在每个应用程序 session 中保留 1 个 HKHealthStore(与在不同类中实例化多个 HKHealthStores 或尝试传递同一实例相反),在此处使用单例有什么缺点吗?
其次,为 iPhone 应用程序和 Watch Extension 提供一个单独的 Singleton 类是否更可取?或者都可以使用一个单例类?
import Foundation
import HealthKit
class HealthStoreSingleton {
class var sharedInstance: HealthStoreSingleton {
struct Singleton {
static let instance = HealthStoreSingleton()
}
return Singleton.instance
}
let healthStore = HKHealthStore()
}
最佳答案
我发现,如果您正在使用锚定更新查询,那么您应该意识到您的 HealthStore 被阻塞,直到您的 updateHandler 函数返回。因此,您不能使用 updateHandler 中的 HealthStore 单例。
您可以通过使用并发来解决此问题:在操作队列上排队操作,并在开始处理操作之前从 updateHandler 返回。
或者您可以创建第二个 HealthStore 实例,并从 updateHandler 内部使用它。我必须说我做了一些实验以了解它是否有效,但我并没有在现实生活中使用这个方案。所以我不知道性能影响。
关于您的第二个问题:应用程序和应用程序扩展在不同的进程中运行。无法在两者之间共享一个实例。每个人都必须有自己的 HKHealthStore 实例。
关于ios - 维护 HKHealthStore 对象的最佳方法......单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49503344/
因此,我可以将 HKWorkout 和 HKQuantitySample 保存到 HealthKit,但需要能够更新这些记录。据我所知,如果执行 HKSampleQuery,我将无法更新 HKQuan
根据Apple HealthKit Docs,我知道有这些方法 Working with HealthKit Objects deleteObject:withCompletion: saveObje
我正在尝试使用 HealthKit 读取数据,但在运行这段代码时仍然遇到同样的问题: func readAge() -> ( age:Int?) { var error:NSError?
为了设置 HealthKit 框架,Apple 推荐以下方式: 在 Xcode 中启用 HealthKit 功能。 通过调用 isHealthDataAvailable 方法检查 HealthKit
我意识到单例并不总是首选,但是根据 Apple 文档,在使用 HealthKit 时“每个应用程序只需要一个 HealthKit 商店。这些是长期存在的对象。创建一次商店,并保留一个引用以供以后使用。
我无法正确删除 HKCorrelation 对象。如果我删除它,我最终会得到每个实体的单独条目,以及原始的相关性。此外,尝试手动清理每个样本也会失败。我没有做任何花哨的事情。 . .只需调用:HKHe
我想从我的 HKHealthStore 实例中获取用户最近的 BMI 读数。截至目前,我正在按以下方式进行操作,但似乎不正确。有没有办法获取 BMI 的实际数值而不是 countUnit (HKUni
我目前正在尝试制作一个简单的计步器应用程序。但是,我似乎无法获得使用 HealthKit 的授权。 我有这段代码试图获得许可并在之后使用回调来处理结果。 func authorizeHealthKit
我正在尝试删除由我的 Xamarin.iOS 应用程序添加的 HKObject。我能够成功保存和查询 Apple HealthKit 中的数据,但 HKHealthStore.DeleteObject
我目前正在处理一个我无法单独解决的问题。我尝试将 HealthKit 集成到我的应用程序中。正常的解决方案工作完美,我目前正在处理错误以在出现问题时通知用户。问题是方法“SaveObject()”似乎
我似乎无法捕获和处理取消 HealthKit 权限的用户。完成 block 总是返回成功和 nil 错误。 [[DataManager healthStore] requestAuthorizatio
我尝试用 watch OS2.0 获取心率当我尝试开始锻炼时出现此错误 Carleep WatchKit Extension[594:91719] -[HKHealthStore startWorko
我正在尝试使用 HKHealthStore deleteObjects 一次删除大约400 个对象 并且我'我遇到了这个奇怪的错误。 Error Domain=com.apple.healthkit
我是一名优秀的程序员,十分优秀!