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