0

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

// 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。

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

想法?

4

1 回答 1

0

你为什么不尝试使用

 @property (copy, nonatomic) NSString *myStringValue;
于 2013-03-25T22:18:31.537 回答