以下代码:
[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:mapURL]]
返回NSConcreteData的一个实例而不是NSData(我期望!)。 NSConcreteData表示什么,确切地说,以及为什么返回它而不是NSData的实例?此外,这个类定义在哪里? XCode抱怨它尚未定义,但我不知道应该包括什么才能获得该课程。
任何帮助表示赞赏!
答案 0 :(得分:19)
Foundation框架在某些区域使用类集群为各种类提供通用接口。这意味着,当您使用NSData
API创建NSData
对象时,实例化和返回的实际类与NSData
不同,但是可以而且应该对其进行处理,您的代码称为NSData
对象。
在一天结束时,简单的答案是:忽略NSConcreteData
的存在并将其视为NSData
。
有关类集群的更多信息,请参阅Apple Cocoa Fundamentals Guide的Class Clusters部分。