2014-01-10 76 views
0

在我的項目中,我創建了一個帶有各種不同變量的字符串,然後將其插入到我的字幕中。模擬器顯示它現場。然而,在IPad上,它僅在一個變量而不是其他任何變量的情況下顯示NULL。有沒有人遇到類似的問題?Xcode Simulation顯示UITableView字幕中的值,但IPad顯示<null>

由於我無法張貼圖片(沒有足夠的聲譽至今),我只是通過鍵入它歸結爲重建它:

IOS模擬器:

.......... .................................................. ....

托馬斯冬季

2014年1月5日 - 的Dauer:0,5^h

.................... ................. ...........................

實際設備:

............ .................................................. ..

托馬斯冬季

2014年1月5日 - 的Dauer:(空)H

...................... ..........................................

The String is beeing通過使用initString放在一起WithFormat方法,其中包含變量。看到字幕中的h如何仍然存在,但是在它之前的持續時間中,我只能認爲該變量在實際設備上不存在,因此我們只能認爲該變量在實際設備上不存在。

[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; 
+0

如果您要顯示您的代碼,它會更容易幫助。 – SamB

回答

0

這可能是您的模擬器和設備上設置不同的語言環境。如果要轉換爲數字的字符串是固定格式,則需要指定此確切格式,包括使用的小數和千分隔符。

將數字格式化程序設置爲「十進制樣式」會從設備或模擬器中獲取各種設置,特別是用於分隔小數點的字符 - 在歐洲的大部分地方,它都是逗號(例如Pi是3,14159 .... ),但在其他地方是一個時期(3.14159)。要轉換的字符串將包含其中的一個,它們將與模擬器語言環境中使用的小數點分隔符相匹配,並且您的設備的語言環境將具有另一個。當數字格式化程序讀取一個不能轉換的字符串時,它返回nil,這就是你所看到的。

手動設置格式或考慮不同的方法 - 除了從文本文件,Web服務或用戶條目進行初始解析之外,沒有理由將數字保存爲字符串。

+0

我從字符串切換到NSNumber到字符串的原因是因爲我從數據庫中獲取值並且字符串有一個嘲笑的小數位數......爲了使它更具有可視性,我必須將其轉換回來並且因爲到目前爲止我還不知道一種不同的方法。 –

+0

好的,但你可以像我問的那樣向你的問題添加額外的信息嗎? – jrturton

+0

由於缺少名譽而無法上傳圖片。試圖重建它儘可能乾淨 –