NSCFString和NSConstantString之间有什么不同?

DNB*_*ims 9 objective-c nsstring

我将对象变量声明为a NSString 但当我使用XCode查看我的对象时,我看到有两种类型的String,似乎系统自动转移到另一个:

在此输入图像描述

他们之间有什么不同?它们是否可以与其他人互换.另外,两个条件变成另一个的条件是什么?

谢谢.

Jon*_*pan 13

它们都是具体的子类NSString.__NSCFString是在运行时通过Foundation或Core Foundation 创建的,是在编译时创建__NSCFConstantStringCFSTR("...")常量或@"..."常量.

他们的界面是私人的.对待他们两个NSString,你应该没有麻烦.

  • 如果您尝试将两个对象与isKindOfClass进行比较,则会遇到麻烦:只有__NSCFConstantString是接收者时才会有效.只是想知道这意味着其中一个微妙之处的人. (9认同)
  • 好吧,我用它来帮助它 (2认同)
  • `-isEqual:` 通常。`-isKindOfClass:` 比较一个对象的类和另一个类;它与将对象与另一个对象进行比较几乎没有关系。 (2认同)