Question

Le code suivant:

[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:mapURL]]

renvoie une instance de NSConcreteData par opposition à NSData (que je m'y attendais!). Qu'est-ce que représente NSConcreteData, exactement, et pourquoi est-il retourné au lieu d'une instance de NSData? De plus, où est cette classe définie? XCode se plaint qu'il n'a pas été défini, mais je ne sais pas ce que je dois inclure afin d'obtenir la classe.

Toute aide appréciée!

Était-ce utile?

La solution

Le framework Foundation utilise des clusters de classe dans certains domaines pour fournir une interface commune à différentes classes. Ce que cela signifie est que, lorsque vous utilisez une API NSData pour créer un objet NSData, la classe réelle qui est instancié et retourné est différent de NSData, mais peut et doit être traité et appelé un objet NSData par votre code.

A la fin de la journée, la réponse est simple:. Ignorer l'existence de NSConcreteData et de la traiter comme NSData

Pour plus d'informations sur les clusters de classe, s'il vous plaît voir la section Clusters classe d'Apple Cocoa Fundamentals Guide .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top