Xcode模拟显示UITableView字幕中的值,但IPad显示<;空>;

Xcode模拟显示UITableView字幕中的值,但IPad显示<;空>;,xcode,ipad,uitableview,ios-simulator,subtitle,Xcode,Ipad,Uitableview,Ios Simulator,Subtitle,在我的项目中,我创建了一个包含各种不同变量的字符串,然后将其插入到字幕中。模拟器现场显示它。但在IPad上,只有一个变量显示为空,其他变量则不显示。有没有人经历过类似的问题 由于我无法发布图像(目前声誉不足),我只需通过键入以下内容来重建图像: IOS模拟器: 徖 托马斯·温特 2014-01-05-达斡尔:0.5小时 徖 真实设备: 徖 托马斯·温特 2014-01-05-Dauer:(空)h 徖 字符串是通过使用initStringWithFormat方法组合在一起的,我在其中包含了变量。看

在我的项目中,我创建了一个包含各种不同变量的字符串,然后将其插入到字幕中。模拟器现场显示它。但在IPad上,只有一个变量显示为空,其他变量则不显示。有没有人经历过类似的问题

由于我无法发布图像(目前声誉不足),我只需通过键入以下内容来重建图像:

IOS模拟器:

托马斯·温特

2014-01-05-达斡尔:0.5小时

真实设备:

托马斯·温特

2014-01-05-Dauer:(空)h

字符串是通过使用initStringWithFormat方法组合在一起的,我在其中包含了变量。看到h在副标题中仍然存在,但在它之前没有持续时间,我只能认为该变量在实际设备上已失效

NSNumberFormatter*格式化程序=[[NSNumberFormatter alloc]init]

[formatter setNumberStyle:NSNumberFormatterDecimalStyle];

[formatter setMaximumFractionDigits:2];

NSString * dauerString =[[NSString alloc]initWithFormat:@"Dauer: %@h",[formatter numberFromString:[[self.leistungListe objectAtIndex:indexPath.row]getDauer]]];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];

[dateFormat setDateFormat:@"YYYY-MM-dd"];

NSString * dateString = [dateFormat stringFromDate:[[self.leistungListe objectAtIndex:indexPath.row]getDatum]];

NSString * detailTextString = [[NSString alloc]initWithFormat:@"%@ - %@",dateString,dauerString];

cell.detailTextLabel.text =detailTextString;

这可能是您的模拟器和设备上设置的区域设置不同。如果要转换为数字的字符串是固定格式,则需要指定此精确格式,包括使用的小数点和千位分隔符

将数字格式化程序设置为“十进制样式”将采用设备或模拟器的各种设置,尤其是用于分隔小数的字符-在欧洲大部分地区,它是逗号(例如Pi为314159…),但在其他地方,它是句点(3.14159)。正在转换的字符串将有其中一个,它将匹配模拟器区域设置中使用的十进制分隔符,而设备区域设置将有另一个。当数字格式化程序读取无法转换的字符串时,它返回nil,这就是您看到的结果


手动设置格式,或考虑不同的方法——没有理由将数字作为字符串,而不是从文本文件、Web服务或用户条目中进行初始解析。 如果你能展示你的代码,帮助会更容易。我之所以从字符串切换到NSNumber再切换到字符串,是因为我从数据库中获取了值,而字符串中有大量的小数位数。。。为了使它更美观,我必须来回转换它,因为到目前为止我还不知道另一种方法。好的,但是你能像我问的那样在你的问题中添加额外的信息吗?由于缺少声誉,无法上传图片。我试着尽可能干净地重建它。我很好地要求从我们的数据库中获取值,而不使用数千位小数,并且去掉了数字格式化程序。它仍然在模拟器中工作。现在我只需要等待它被再次签署,以便检查。