我的代码调用String.appendingFormat
将格式化字符串附加到用作iPhone应用程序输出的值。当调用包含格式字符串和两个值参数(例如("The numbers are %d and %d", number1, number2))
)时,它在模拟器上工作正常,但在我的iPad上,第二个值始终被视为零。
请注意,在每种情况下,值都来自Int64
数组。
为什么它在实际设备上的工作方式与在模拟器中的工作方式不同?
这是我的回复的格式更好的版本(其中一天,我将记住在回复中吞下新行):
var results = [Int64]()
var A: Int64 = 123
results.append(A)
在模拟器上,结果[0] = 123
在iPad上,结果[0] =看起来像指针;它是一个11位数字,每次执行代码时都会更改
var outputString: String = ""
outputString = outputString.appendingFormat("%d %d", A, results[0])
在模拟器上,outputString =“123 123”
在iPad上,outputString =“123 0”
答案 0 :(得分:0)
原来Bryan Chen的链接是解决方案 - 发生了什么,因为我使用的是%d而不是%lld,每个Int64都显示为十进制的四个低字节,然后是四个高字节。当我在调用中添加其他参数时,它会显示第一个参数,然后是零,然后是第二个参数,然后是零,依此类推。