我的目标非常简单 - 我正在尝试将NSString
设置为某些测试数据,然后返回该类,该类应为NSString
。这是我的代码:
NSString* stringer = [NSString stringWithFormat: @"Test"];
NSLog(@"%@", [stringer class]);
日志说该课程为NSCFString
,而不是NSString
。这是怎么回事?
答案 0 :(得分:30)
NSString实际上是不同类型的字符串对象的容器类。通常,NSString构造函数会返回一个实际上是NSCFString类型的对象,它是Core Foundation CFString结构的一个瘦包装。
答案 1 :(得分:25)
NSString是一个class cluster,以及其他基础类型,如NSNumber和NSArray:
类集群是一种设计模式 Foundation框架所做的 广泛使用。类簇组 一些私人的,具体的 公共的子类,抽象 超类。课堂分组 这种方式简化了公开 可见的建筑 面向对象的框架没有 减少其功能丰富性。 类集群基于 抽象工厂设计模式 在“可可设计模式”中讨论过。