设备上的iOS 10错误,但模拟器上没有

时间:2016-10-12 01:38:24

标签: iphone swift ios10

我的代码调用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”

1 个答案:

答案 0 :(得分:0)

原来Bryan Chen的链接是解决方案 - 发生了什么,因为我使用的是%d而不是%lld,每个Int64都显示为十进制的四个低字节,然后是四个高字节。当我在调用中添加其他参数时,它会显示第一个参数,然后是零,然后是第二个参数,然后是零,依此类推。