NSString实例将其类报告为NSCFString

时间:2008-12-26 15:12:57

标签: objective-c cocoa class nsstring class-cluster

我的目标非常简单 - 我正在尝试将NSString设置为某些测试数据,然后返回该类,该类应为NSString。这是我的代码:

NSString* stringer = [NSString stringWithFormat: @"Test"];
NSLog(@"%@", [stringer class]);

日志说该课程为NSCFString,而不是NSString。这是怎么回事?

2 个答案:

答案 0 :(得分:30)

NSString实际上是不同类型的字符串对象的容器类。通常,NSString构造函数返回一个实际上是NSCFString类型的对象,它是Core Foundation CFString结构的一个瘦包装。

答案 1 :(得分:25)

NSString是一个class cluster,以及其他基础类型,如NSNumber和NSArray:

  

类集群是一种设计模式   Foundation框架所做的   广泛使用。类簇组   一些私人的,具体的   公共的子类,抽象   超类。课堂分组   这种方式简化了公开   可见的建筑   面向对象的框架没有   减少其功能丰富性。   类集群基于   抽象工厂设计模式   在“可可设计模式”中讨论过。