下面的代码:

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

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

任何帮助表示赞赏!

有帮助吗?

解决方案

Foundation框架在某些领域使用类簇来为各种类提供公共接口。这意味着,当您使用 NSData 用于创建一个 API NSData object,实例化并返回的实际类与 NSData, ,但可以而且应该被视为和称为 NSData 通过您的代码对象。

归根结底,简单的答案是:忽略 的存在 NSConcreteData 并像对待它一样 NSData.

有关类簇的更多信息,请参阅 Apple 的类簇部分 可可基础指南.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top