我在XCode 8.1和Swift 3.0上编写了一个iOS应用程序,我遇到了一个非常奇怪的行为:
我已经定义了一个名为Point的结构:
struct Point {
let latitud: Double, longitude: Double, id: Int
}
我已经定义了一个从XML文档(简化版本)返回Point数组的函数:
func getPointsFromXML(_ document: AEXMLDocument) -> [Point] {
var ret: [Point] = []
do {
if let pointsAux = document.root[pointsNode][pointNode].all {
for pointAux in pointsAux {
let auxPoint = Point(latitud: <lat>, longitude: <lon>, id: <id>
ret.append(auxPoint)
}
} else {
throw TrailError.trailPointsNotFound
}
} catch let error {
print(error.localizedDescription)
}
return ret
}
奇怪的部分来到这里。如果我检查auxPoint
它包含正确收集的值:
然后,如果我检查ret
数组,我已经附加了auxPoint
,则值会完全改变:
这不是数据表示问题,因为数字的二进制值也不同。