2016-10-12 130 views
-2

我的代碼調用String.appendingFormat將格式化的字符串附加到用作iPhone應用中的輸出的值。當呼叫包含格式字符串和兩個值參數(例如("The numbers are %d and %d", number1, number2)),它可以在模擬器上正常工作,但在我的iPad上,第二個值始終被視爲零。從設備上的iOS 10錯誤,但不在模擬器上

一個Int64陣列。爲什麼在實際設備上的不同工作比在模擬器?

這裏是我的答覆更好格式的版本(這些天,我要記住,換行符被吞噬回覆):

var results = [Int64]() 
var A: Int64 = 123 
results.append(A) 

在模擬器上,結果[0] = 123

在iPad上,結果[0] =看起來像一個指針;它是每個代碼被執行

var outputString: String = "" 
outputString = outputString.appendingFormat("%d %d", A, results[0]) 

在模擬器,outputString時間變化的11位號碼= 「123 123」

在iPad,outputString = 「123 0」

+5

需要您的代碼進行調試。 – Santosh

+1

http://stackoverflow.com/a/8679/642626 –

+1

打印像這樣。 'print(「數字是\(number1)和\(number2)」)' –

回答

0

匝out Bryan Chen的鏈接是解決方案 - 發生的是,因爲我使用%d而不是%lld,因此每個Int64都以十進制的四個低位字節顯示,其後是四個高位字節。當我爲調用添加額外參數時,它會顯示第一個參數,然後顯示零,然後顯示第二個參數,然後顯示零,依此類推。

相關問題