【发布时间】:2016-02-24 01:13:39
【问题描述】:
在Apple documentation 中,它说某些实例需要为每个应用创建一次,例如 HKHealthStore:
每个应用只需要一个 HealthKit 商店。这些是长寿的对象。创建一次商店,并保留参考以供以后使用。
是在做安全下面这样方便的事情还是有更好的方法?
public extension HKHealthStore {
class var sharedInstance: HKHealthStore? {
if !HKHealthStore.isHealthDataAvailable() {
return nil
}
struct Singleton {
static let instance = HKHealthStore()
}
return Singleton.instance
}
}
这样我就可以做到这一点而不会污染自定义管理器:
HKHealthStore.shareInstance?.requestAuthorizationToShareTypes
这样可以吗,还是有更好的架构方法?
【问题讨论】:
-
在同一个文档中,Apple 说:
Like many classes in HealthKit, the HKHealthStore class should not be subclassed.