objective-c - 当调试器摘要显示文本时,为什么此 NSString 长度为零?

标签 objective-c c xcode nsstring

非零、非空 NSString 返回零长度的奇怪之处。这是我设置字符串的方法。

// property is declared like so in .h
@property (strong, nonatomic) NSString *myStringValue;

// synthesized like so in .m
@synthesize myStringValue;

// most times property is set directly like so (.m)<br />
// ...
self.myStringValue = @"Some Value";
// ...

// property is (sometimes) set like so (.m)<br />
// copied from another vc
// ...
self.myStringValue = anotherObj.myStringValue;
// ...

零长度
当通过从另一个对象分配该属性(后一种情况)来设置该属性并稍后在代码中的某个位置使用时,[self.myStringValue length] 返回0 即使使用调试器的鼠标悬停将摘要文本正确显示为“Some Value”。

NSString 优化?
This blog讨论了当内存中存在多个包含相同字符串的 NSString 对象时可能会发生的 NSString 优化。我想知道这是否与此有关。由于 NSString 是作为类簇实现的,并且 NSString 对象可能会在幕后转换为任意数量的相关私有(private)类(*__NSCFString,__NSCFStringConstant*)以达到优化目的,也许这就是导致我的问题的原因,如果其中任何一个类碰巧返回长度为零的消息...

想法?

最佳答案

你为什么不尝试使用

 @property (copy, nonatomic) NSString *myStringValue;

关于objective-c - 当调试器摘要显示文本时,为什么此 NSString 长度为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15623772/

相关文章:

objective-c - 如何从 CustomViewController 中更改 RootViewController(在 AppDelegate 中)?

C 程序 - 警告 : assignment makes pointer from integer without a cast

ios - 多个 Segues 到一个 View Controller (如何使其在 Storyboard中看起来不错)

ios - 内置按钮未显示在 iTunes 连接中,简单的应用程序大小很大

ios - 重定向到另一个 View Controller

objective-c - 使用 Objective-C 下载大量图像

c - MinGW gcc -> 64 位 Windows 7 上缺少 libmpc-3.dll

c++ - 使用 CompareAndSwap 的 AtomicIncrement

iphone - 动画 self.view.window.frame 变化

c++ - 如何正确使用 ifstream 从输入文件中读取数据?