Was ist NSConcreteData, und wo es definiert?
-
12-09-2019 - |
Frage
Mit dem folgenden Code:
[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:mapURL]]
gibt eine Instanz von NSConcreteData im Gegensatz zu NSData (was ich erwartet hatte!). Was bedeutet NSConcreteData darstellt, genau, und warum ist es statt einer Instanz von NSData zurückgegeben werden? Ferner kann, wenn diese Klasse definiert? XCode beschwert, dass es nicht definiert wird, aber ich weiß nicht, was ich in Ordnung enthalten soll, die Klasse zu erhalten.
Jede Hilfe willkommen!
Lösung
Die Stiftung Framework verwendet Klasse Cluster in bestimmten Bereichen eine gemeinsame Schnittstelle zu verschiedenen Klassen zur Verfügung zu stellen. Das bedeutet, dass, wenn Sie eine NSData
API verwenden, um ein NSData
Objekt, die tatsächliche Klasse zu erstellen, die instanziert und zurückgegeben von NSData
anders, aber kann und soll von Ihrem Code als NSData
Objekt behandelt und bezeichnet werden.
Am Ende des Tages, ist die einfache Antwort:. Die Existenz von NSConcreteData
ignorieren und es wie NSData
behandelt
Weitere Informationen über die Klasse-Clustern finden Sie in der Klasse Abschnitt Cluster von Apples Cocoa Fundamentals Führer .