2016-10-12 104 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都以十进制的四个低位字节显示,其后是四个高位字节。当我为调用添加额外参数时,它会显示第一个参数,然后显示零,然后显示第二个参数,然后显示零,依此类推。

相关问题