NSStrings在哪里分配?

时间:2010-05-04 19:38:46

标签: objective-c memory-management nsstring constants foundation

我知道常量CStrings是静态分配的,而不是堆上的。

我还注意到,常量NSStrings具有无限的保留计数。是否仍然可以静态分配常量NSStrings,而不是在堆上?

1 个答案:

答案 0 :(得分:2)

常量NSStrings属于类NSConstantString,因此就像lisp中的原子一样;他们到处闲逛。 - > NSConstantStrings是静态分配的。也就是说,如果您在代码中的两个不同位置使用@"cow",则它们将引用同一个对象。

NSConstantStrings甚至有保留计数的原因是因为它们继承自NSObject