【发布时间】:2011-02-15 15:24:27
【问题描述】:
我知道常量 CStrings 是静态分配的,而不是在堆上。
我还注意到常量 NSStrings 具有无限的保留计数。常量 NSString 也是静态分配的,而不是在堆上分配,这是否成立?
【问题讨论】:
标签: objective-c memory-management nsstring constants foundation
我知道常量 CStrings 是静态分配的,而不是在堆上。
我还注意到常量 NSStrings 具有无限的保留计数。常量 NSString 也是静态分配的,而不是在堆上分配,这是否成立?
【问题讨论】:
标签: objective-c memory-management nsstring constants foundation
常量 NSStrings 属于 NSConstantString 类,因此就像 lisp 中的原子一样;他们闲逛。 -> NSConstantStrings 是静态分配的。 也就是说,如果您在代码中的两个不同位置使用 @"cow",它们将引用同一个对象。
NSConstantStrings 甚至有保留计数的原因是因为它们继承自 NSObject。
【讨论】: