Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在数组上迭代时出错_Ios_Arrays_Swift3 - Fatal编程技术网

Ios 在数组上迭代时出错

Ios 在数组上迭代时出错,ios,arrays,swift3,Ios,Arrays,Swift3,我试图通过数组循环获取坐标,但它给了我一个错误,我无法访问数组。数据通过一个序列传递,如果我打印它,它将显示它正在工作,因此数据被正确传输,但无法找出为什么我不能遍历数组并提取纬度和经度 这是控制台中的输出 配送目的地(名称或业务:可选(“进出汉堡”), FirstLineAddress:可选(“550纽霍尔Dr”),SecondLineAddress: 可选(“美国”),城市地址:可选(“圣何塞”), 邮政编码地址:可选(“CA 95110”),距离目标: 可选(9.2807823200000

我试图通过数组循环获取坐标,但它给了我一个错误,我无法访问数组。数据通过一个序列传递,如果我打印它,它将显示它正在工作,因此数据被正确传输,但无法找出为什么我不能遍历数组并提取纬度和经度

这是控制台中的输出

配送目的地(名称或业务:可选(“进出汉堡”), FirstLineAddress:可选(“550纽霍尔Dr”),SecondLineAddress: 可选(“美国”),城市地址:可选(“圣何塞”), 邮政编码地址:可选(“CA 95110”),距离目标: 可选(9.2807823200000001),横向:可选(37.35025360833043),长: 可选(-121.92182779312132))

您有一个数组(而不是字典),所以您需要做的是如下迭代:

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))这不是键值对吗?@QuickSilver
var 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]()