为什么UILabel没有显示指定的NSString的值?

时间:2014-07-16 14:35:10

标签: ios iphone objective-c nsstring uilabel

在我的项目中,我使用UILabel和NSArray,我以NSString的形式从数组传递参数,我已经使用断点检查了方法的调用,正确传递参数的参数但在尝试使用收到的参数时(在NSString中),但UILabel显示NULL值。这是代码:

- (void)updateMenuLabel:(NSString *)passedObject {
   NSString *str=[NSString stringWithFormat:@"%@", passedObject];
   lbl_selectitem.text=str;

}

4 个答案:

答案 0 :(得分:0)

可能由于以下几点而发生:如果这是一个属性,则它尚未从xib / nib文件或故事板正确链接。如果这是以编程方式创建的,那么在为此对象分配内存时是否已检查过它?很明显,对象是零,但你必须注意到过程中的位置。 在viewDidLoadviewDidAppear(例如)中设置一个断点,以查看该对象是否仍为零并从那里开始。

答案 1 :(得分:0)

您需要检查passObject字符串值。打印nslog相同的值。正如rckoenes所说它是零。

答案 2 :(得分:0)

如果在接口中获得NULL,则表示字符串为nil。 如果您看不到任何更改,则表示字符串为空(@“”)或lbl_selectitem为nil。也许没有连接到xib中的对象。

在第一行添加断点。然后转到lldb控制台并输入:

po lbl_selectitem
po passedObject

将打印存储在属性中的值,您可能会发现错误。

答案 3 :(得分:0)

两件事,

  • 格式化时检查字符串是否为nil / null。
  • 确保如果UILabel是IBOutlet,则将其声明为属性(@property)。 如果不是IBOutlet,并且您正在创建UILabel,请使用addSubview:method添加到父视图。