核心数据值为UILabels的字符串

时间:2012-06-13 15:13:32

标签: iphone objective-c core-data nsstring nsnumber

我有一些与核心数据一起存储的值,我打开了应用程序的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]
没有运气。提前感谢您的帮助。

2 个答案:

答案 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表示您希望小数点后的哪个位置