Ios 在数组上迭代时出错
我试图通过数组循环获取坐标,但它给了我一个错误,我无法访问数组。数据通过一个序列传递,如果我打印它,它将显示它正在工作,因此数据被正确传输,但无法找出为什么我不能遍历数组并提取纬度和经度 这是控制台中的输出 配送目的地(名称或业务:可选(“进出汉堡”), FirstLineAddress:可选(“550纽霍尔Dr”),SecondLineAddress: 可选(“美国”),城市地址:可选(“圣何塞”), 邮政编码地址:可选(“CA 95110”),距离目标: 可选(9.2807823200000001),横向:可选(37.35025360833043),长: 可选(-121.92182779312132)) 您有一个数组(而不是字典),所以您需要做的是如下迭代:Ios 在数组上迭代时出错,ios,arrays,swift3,Ios,Arrays,Swift3,我试图通过数组循环获取坐标,但它给了我一个错误,我无法访问数组。数据通过一个序列传递,如果我打印它,它将显示它正在工作,因此数据被正确传输,但无法找出为什么我不能遍历数组并提取纬度和经度 这是控制台中的输出 配送目的地(名称或业务:可选(“进出汉堡”), FirstLineAddress:可选(“550纽霍尔Dr”),SecondLineAddress: 可选(“美国”),城市地址:可选(“圣何塞”), 邮政编码地址:可选(“CA 95110”),距离目标: 可选(9.2807823200000
for object in addressArr {
...
// get coordinates from object
let lat = object.Lat
let long = object.Long
}
或者,如果您也需要表行的索引,可以执行以下操作:
for (i, object) in addressArr.enumerated() {
...
// get coordinates from object
let lat = object.Lat
let long = object.Long
print ("Destination at index \(i) has coordinate: (\(lat), \(long))")
}
我怎么知道它是一个数组
代码中的符号
var addressArr = [DeliveryDestinations]()
这意味着这是一个对象数组DeliveryDestinations。
打印出来后,就可以打印出数组中的对象。
在您的例子中,这个对象有一个“类似字典”的描述,所以print函数可以这样打印它
在每个对象中,使用
description
功能,您可以指定在对象(或这些对象的数组)上打印时文本的外观您希望键
和值
包含什么内容???@luk2302键将是Lat,值将是长时间相同的坐标将是键,值将是坐标。试着把这个放到数组中,这样我就可以根据这个坐标用针填充地图。为什么键应该是“Lat”?这毫无意义,你有一个数组,任何地方都找不到“Lat”。@luk2302不是这一个Lat:Optional(37.35025360833043),Long:Optional(-121.92182779312132))键和值对吗?Zedravec这对我来说非常有效这两个解决方案都是完美的。一个问题是我在哪里搞砸了,你怎么知道这是一个数组而不是字典,因为这里我搞糊涂了。Lat:Optional(37.35025360833043),Long:Optional(-121.92182779312132))这不是键值对吗?@QuickSilvervar addressArr=[DeliveryDestinations]()
,这是一个数组,句点。不管它包含什么内容以及这些内容如何决定将自身转换为字符串,它都将保持为一个数组。@luk2302 Thnks感谢您解释抱歉,我对这一点还相当陌生,所以我还在学习。非常感谢你们的帮助。
for (i, object) in addressArr.enumerated() {
...
// get coordinates from object
let lat = object.Lat
let long = object.Long
print ("Destination at index \(i) has coordinate: (\(lat), \(long))")
}
var addressArr = [DeliveryDestinations]()