在UITAbleViewCell中使用[NSString stringWithFormat]显示为空字符串

时间:2013-09-14 23:35:36

标签: ios objective-c nsstring

我必须遗漏一些基本的东西。当我使用[NSString stringWithFormat]设置显示在 UITableViewCell 中的对象的属性时,它显示为空。如果我只是正常设置属性,即property = @"Item One",它显示正常。代码和结果如下。

使用此: enter image description here

结果:

enter image description here

但日志显示: enter image description here

这表示该属性已设置。请有人带我到这里上学。

修改 维持不足是个问题。

我的道具看起来像这样:@property (weak, nonatomic) NSString *name

将其更改为:@property (strong, nonatomic) NSString *name

修正了问题。我明白这意味着我保留了对这个属性的强烈引用,但在这个特殊情况下,是否有一个“我刚毕业的大学并自学Obj-C”解释内存中发生的事情导致这个问题?

2 个答案:

答案 0 :(得分:1)

我的第一个想法,因为一个常量字符串起作用,就是你保留了name属性,尽管如果这是真的我很惊讶你没有崩溃。

修改

看到你的代码后,问题出在这里。只要该值在其他位置保持活动状态,weak属性仅保留值。常量字符串永远存在,因此在此处指定常量字符串。但是如果你分配一个计算值,那么没有东西拥有它,因此什么都没有让它保持活力,因此你的弱属性将以nil结束。

答案 1 :(得分:0)

我假设您要将name分配给UILabel的text属性。

标签是:

  1. 隐藏(检查隐藏属性)
  2. 不在视图层次结构中(检查它的superview属性)
  3. 不足以显示文字(调用sizeToFit将解决此问题)
  4. 与背景颜色相同(不太可能)
  5. 最难解决的问题是如果它是零。你没有告诉我们细胞的来源,但这里有一些可能性。

    1. IBOutlet未在xib / storyboard中设置
    2. 您没有使用正确的init方法对其进行实例化。如果要实例化它,请确保调用特定的init变体。