2014-07-16 103 views
0

在我的项目中,我使用UILabel和NSArray,我以NSString的形式从数组中传递参数,我使用断点检查了方法的调用,该参数正确传递参数,但尝试使用收到的参数(在NSString中)但UILabel显示NULL值。下面是代码:为什么UILabel没有显示分配的NSString的值?

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

} 
+2

IB没有正确连接?顺便说一下'stringWithFormat'行是多余的。 – trojanfoe

+0

与IBOutlet连接,删除冗余行并尝试,但仍然获得NULL –

+0

确保lbl_selectitem不为零(使用NSLog(@“%@”,lbl_selectitem))记录它。 – rdelmar

回答

0

它可以的,因为一些事情发生:如果这是一个属性,它没有被正确地从厦门国际银行/笔尖文件或链接故事板。如果这是以编程方式创建的,那么当您为此对象分配内存时,是否检查过它?很明显,这个对象是零,但你必须注意在这个过程中的哪个地方。 在viewDidLoadviewDidAppear(例如)中设置一个断点,以查看对象是否仍然为零并从那里开始。

+1

这是作为答案发布的,但它并不试图回答这个问题。它应该可能是编辑,评论,另一个问题,或者完全删除。 – Neeku

0

您需要检查传递的对象字符串值。打印nslog相同的值。正如rckoenes建议它是零。

0

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

向第一行添加一个断点。然后转到lldb控制台并键入:

po lbl_selectitem 
po passedObject 

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

0

两件事情,

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