【问题标题】:Objective-C assigning an long int to text label not workingObjective-C为文本标签分配长整数不起作用
【发布时间】:2015-11-06 18:30:36
【问题描述】:

我正在尝试为文本标签分配一个长整数,如下所示:

labelOne.text = [object objectForKey:@"TagId"];

[object objectForKey:@"TagId"];是 1234567

但是当我运行我的代码时,我之前工作的所有标签都显示为空白,包括 labelOne。

我做错了什么。

【问题讨论】:

  • 你必须使用 [NSString StringWithFormat:@"%i",[object objectForKey:@"TagId"]];
  • 您尝试从哪里设置文本?你连接插座了吗?
  • @MuhammadWaqasBhati 不,这是不对的。
  • 这就是调试器的用途。确认 labelOne 不是 nil。确认 object 不是 nil。确认 object[@"TagId"] 不是 nil
  • 是的,当我将它设置为 @"aaa" 时,此标签正在工作,它显示 aaa

标签: ios objective-c


【解决方案1】:

试试这个。

NSString *tagId = [object objectForKey:@"TagId"];
labelOne.text = [NSString stringWithFormat:@"%@",tagId?tagId:@""];

【讨论】:

  • 这有什么帮助?所有这一切都是将可能的nil 值更改为空字符串。最终结果是相同的 - 标签将为空白。
  • 并检查 '[object objectForKey:@"TagId"];' 的返回值我认为它返回 nil
【解决方案2】:

试试这个

 labelOne.text = [[object objectForKey:@"TagId"]stringValue];

【讨论】:

    【解决方案3】:

    在我看来,[object objectForKey:@"TagId"] 返回引用对象,而不是原始类型,long int。

    如果在 [object objectForKey:@"TagId"] 返回的对象是 NSNumber,那么你必须使用这个:

    [[object objectForKey:@"TagId"] integerValue]; //integerValue, longValue, unsignedIntegerValue, etc. look at the documentation for NSNumber to see which one will fit best for you
    

    然后,一旦你有你的 long int,你就可以使用转换把它变成一个字符串:

    NSString *text = [NSString stringWithFormat: @"%ld", [[object objectForKey:@"TagId"] longValue]];
    

    希望这会有所帮助:)

    【讨论】:

      【解决方案4】:

      您应该创建一个 NSNumber,然后应该将该 N​​SNumber 的 stringValue 属性分配给标签的文本,如下所示:

      NSNumber* tagID = [NSNumber numberWithLong:[object objectForKey:@"TagId"]];
      labelOne.text = [tagID stringValue];
      

      【讨论】:

      • 为什么?该值最初是一个字符串。所有这些不必要的转换有什么帮助?
      • @rmaddy 你怎么知道它是一个字符串?在问题的标题中,OP 询问如何将 long int 分配给标签。
      • 因为如果不是NSString,那么问题中发布的行就会崩溃。而且您不能将原始long int 存储在字典中。所以它要么包装为字符串,要么包装为NSNumber。但是NSNumber 会导致发布的线路崩溃。
      • @rmaddy 好吧,我不能 100% 确定变量的类型,但我觉得无论从 objectForKey: 出来的东西都不是 NSString。跨度>
      • 正如我所说,如果不是NSString,问题中的代码就会崩溃。所以要么该行根本没有被执行,要么它是一个NSString(或nil)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 2010-12-12
      相关资源
      最近更新 更多