我有一些与核心数据一起存储的值,我打开了应用程序的sqlite数据库,以确保正确存储这些值,但是当我尝试显示它们时,它们都显得很时髦。我将核心数据实体的值存储在一个数组中,然后尝试调用这些值。基本上我是开发目标c的新手,并认为我需要一些格式化帮助。这是在输出中显示时髦数字的代码块:
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
NSString *dateString = [dateFormatter stringFromDate:dJournal.dateTime];
cell.dateLabel.text = dateString;
cell.insulinTypeLabel.text = dJournal.insulinType;
cell.glucoseLevelLabel.text = [NSString stringWithFormat:@"%e",dJournal.glucoseLevel ];
cell.carbTotalLabel.text = [NSString stringWithFormat:@"%d",dJournal.carbTotal ];
cell.insulinAmountLabel.text = [NSString stringWithFormat:@"%E",dJournal.insulinUnits ];
return cell;
这是核心数据生成的类文件:
@property (nonatomic, retain) NSDate * dateTime;
@property (nonatomic, retain) NSNumber * glucoseLevel; //Double
@property (nonatomic, retain) NSString * insulinType; //string - no problem with
@property (nonatomic, retain) NSNumber * insulinUnits; //Double
@property (nonatomic, retain) NSNumber * carbTotal; //Integer64
我也尝试过:
[[NSNumber numberWithInt:carbTotal] stringValue]
没有运气。提前感谢您的帮助。
答案 0 :(得分:0)
您为什么使用%e
,%d
等?如果要打印出Objective-C对象,则需要使用%@
格式说明符,例如
cell.glucoseLevelLabel.text = [NSString stringWithFormat:@"%@", dJournal.glucoseLevel];
但是,如果您正在显示数字,那么您实际上应该使用NSNumberFormatter
的实例来生成区域设置感知字符串。
答案 1 :(得分:0)
您使用的是错误的说明符。尝试使用
[NSString stringWithFormate:@"%@",your_string];
[NSString stringWithFormate:@"%d",your_integer];
[NSString stringWithFormate:@"%.02f",your_float];
.02
表示您希望小数点后的哪个位置