В документации Apple есть «Подклассные заметки», которые иногда могут сказать, что они не подклассы определенного класса. Например, HKHealthStore имеет эту формулировку in its documentation: «Как и многие классы в HealthKit, класс HKHealthStore не должен быть подклассом».Если в документации Apple не говорится о подклассе класса, значит ли это, что мы должны рассматривать класс как одноэлементный и иметь только один?
Однако в учебнике, который компилируется, мы создали один экземпляр класса HKHealthStore и использовали его для ссылки на функции HealthStore. Например:
let currentHealthStore = HKHealthStore()
if HKHealthStore.isHealthDataAvailable(){
//The following is for if HealthKit is supported in this device
print("Yes, this iPhone 6 Plus supports Health Information")
let typesToRead = dataToRead()
let typesToWrite = dataToWrite()
currentHealthStore.requestAuthorization(toShare: typesToWrite as? Set<HKSampleType>, read: typesToRead as? Set<HKObjectType>, completion: { (success, error) -> Void in
if success{
// We will update UI to preview data we read.
DispatchQueue.main.async(execute: {() -> Void in
self.loadView()
})
}
else{
print("User didn't allow HealthKit to access these read/write data types")
}
})
} else {
let alertController = UIAlertController(title: "Warning", message: "HealthKit is not available in your device!", preferredStyle: UIAlertControllerStyle.alert)
alertController.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.cancel, handler: nil))
self.present(alertController, animated: true, completion: nil)
}
Подклассы и синглтон - это две совершенно разные концепции, которые не имеют никакого отношения друг к другу. – rmaddy
«Если в документации Apple говорится, что она не подкласса класса, значит ли это, что мы должны рассматривать класс как одноэлементный и иметь только один?» Нет, это не значит. Это просто означает, что вы не должны подклассифицировать его. – Rob
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Inheritance.html – Zolnoor