我正在尝试设置
cell.detailTextLabel.text = [object valueForKeyPath:"@foo"]
等于一个数字。我可以在此字段中设置字符串,但不能设置数字。
但我的错误是:
NSInvalidArgumentException
”而终止应用,原因:'-[__NSCFNumber isEqualToString:]
答案 0 :(得分:2)
您无法直接将NSNumber
分配给NSString
值(标签的text
属性)。
您需要先将数字转换为字符串。
最佳选择是使用NSNumberFormatter
,以便根据用户的区域设置正确显示该数字。
NSNumber *val = object[@"foo"];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
// configure the formatter as needed
NSString *str = [formatter stringFromNumber:val];
cell.detailTextLabel.text = str;
虽然您可以通过以下方式获得可接受的结果:
cell.detailTextLabel.text = [object[@"foo"] stringValue];