SVA*_*SVA 2 types objective-c retaincount
该方法retainCount应该返回无符号整数.
为什么然后,[@"Hi" retainCount]返回-1?
Ben*_*tto 10
简单的答案是因为@"Hi"是一个字符串文字,它总是会坐在二进制可执行图像中,永远不会"消失",因此保留/释放没有效果,你看到UINT_MAX(看起来像 - 1打印时签名,例如%d).(参见Pete Kirkham关于NSObjects具有这些语义的答案).
除此之外,知道虽然@"Hi"表现得像是一个很有用,但NSString*它实际上是一个编译器创建的类实例CFConstantString(或者可能是NSConstantString,我的调试器不同意某些文档),它包装了文字字符串数据和为您提供NSString*接口.但编译器知道这些字符串是特殊的,无法清理,所以它们的retainCount总是为UINT_MAX(-1)
| 归档时间: |
|
| 查看次数: |
352 次 |
| 最近记录: |