13

以下代码:

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

返回一个 NSConcreteData 的实例,而不是 NSData (这是我所期望的!)。NSConcreteData 究竟代表什么,为什么返回它而不是 NSData 的实例?此外,这个类在哪里定义?XCode 抱怨它尚未定义,但我不知道我应该包含什么才能获得课程。

任何帮助表示赞赏!

4

1 回答 1

20

Foundation 框架在某些领域使用类集群来为各种类提供通用接口。这意味着,当您使用NSDataAPI 创建NSData对象时,实例化和返回的实际类与 不同,但可以而且应该被您的代码视为对象NSData并将其称为对象。NSData

归根结底,简单的答案是:忽略 的存在NSConcreteData并将其视为NSData.

有关类集群的更多信息,请参阅 Apple 的Cocoa Fundamentals Guide的 Class Clusters 部分。

于 2009-07-11T14:39:33.233 回答