【问题标题】:Where are constant NSStrings allocated?常量 NSStrings 分配在哪里?
【发布时间】:2011-02-15 15:24:27
【问题描述】:

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

我还注意到常量 NSStrings 具有无限的保留计数。常量 NSString 也是静态分配的,而不是在堆上分配,这是否成立?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢!这很有意义。
    猜你喜欢
    • 2017-05-14
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多