【问题标题】:error with label.text and NSNumberlabel.text 和 NSNumber 错误
【发布时间】:2011-05-02 13:02:22
【问题描述】:

我想这样做:
我有一本这样的字典:

[myMutableDictionary setValue:myNSNumber forKey:@"myKey"];

myNSNumber 是一个 NSNumber。

myCell.label.text = [self.myMutableDictionary objectForkey@"myKey"];

将字典中存储的数字分配给 myCell 中的标签时出现错误。 错误是:

je suis la 2011-05-02 15:01:01.264 [] -[NSCFNumber isEqualToString:]: 无法识别的选择器发送到实例 0x225d00 2011-05-02 15:01:01.319 [] *** 由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因: '-[NSCFNumber isEqualToString:]: 无法识别的选择器发送到实例 0x225d00'

【问题讨论】:

    标签: iphone objective-c ios


    【解决方案1】:

    NSNumber 不是NSString,标签的文本需要设置为NSString

    NSNumber *num = (NSNumber*)[self.myMutableDictionnary objectForkey@"myKey"];
    myCell.label.text = [num stringValue];
    

    【讨论】:

    • 好的,谢谢。我会这样做: NSNumber num = (NSNumber)[self.myMutableDictionnary objectForkey@"myKey"];对于我所有的 NSNumber,或者我可以一次对我字典中的所有 NSNumber 执行一次
    • 每次访问 NSNumber 时都需要调用 stringValue。以下将起作用:myCell.label.text = [(NSNumber*)[self.myMutableDictionnary objectForkey@"myKey"] stringValue];
    【解决方案2】:

    这里你可以通过两种方式做到这一点

    首先是 myCell.label.text = [[self.myMutableDictionnary objectForkey@"myKey"] stringValue];

    第二个是 myCell.label.text = [NSString stringWithFormat:@"%d",[self.myMutableDictionnary objectForkey@"myKey"]] ;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      相关资源
      最近更新 更多