In Apples Dokumentation gibt es "Subclassing Notes", die manchmal sagen können, dass eine bestimmte Klasse nicht unterklassifiziert wird. Zum Beispiel hat HKHealthStore dieses Wort in its documentation: "Wie viele Klassen in HealthKit sollte die HKHealthStore-Klasse nicht unterklassifiziert werden.".Wenn die Dokumentation von Apple besagt, dass eine Klasse nicht unterklassifiziert werden soll, bedeutet das, dass wir die Klasse als Singleton behandeln und nur eine Klasse haben sollen?
In einem Tutorial, das kompiliert wird, haben wir jedoch eine Instanz der HKHealthStore-Klasse erstellt und diese als Referenz für die HealthStore-Funktionen verwendet. Zum Beispiel:
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)
}
Unterklassen und Singleton sind zwei völlig unterschiedliche Konzepte, die nichts miteinander zu tun haben. – rmaddy
"Wenn die Dokumentation von Apple besagt, dass eine Klasse nicht unterklassifiziert werden soll, bedeutet das, dass wir die Klasse als Singleton behandeln und nur einen haben sollen?" ... Nein, das heißt nicht. Es bedeutet nur, dass Sie es nicht unterklassifizieren sollten. – Rob
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Inheritance.html – Zolnoor