Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Swift_Xcode_Swift3 - Fatal编程技术网

Ios 访问特定索引中的数组

Ios 访问特定索引中的数组,ios,arrays,swift,xcode,swift3,Ios,Arrays,Swift,Xcode,Swift3,我尝试访问函数中的数组,据我所知,Swift中没有ArrayList,因此我尝试使用常规列表: func findNearsetPoints(pointsArray: [Point] , myPoint: Point )-> Array <Point>{ var twoPoint = [Point]() var minDist1:Double = DBL_MAX; var minDist2:Double = DBL_MAX; var dis

我尝试访问函数中的数组,据我所知,Swift中没有ArrayList,因此我尝试使用常规列表:

  func findNearsetPoints(pointsArray: [Point] , myPoint: Point )-> Array <Point>{

    var twoPoint = [Point]()
    var minDist1:Double = DBL_MAX;
    var minDist2:Double = DBL_MAX;
    var distance:Double = 0

    for element in pointsArray{
        distance = getDistanceBetweenTwoPoints(pointsArray[element], Point); //error 0
        if (distance < minDist1) {
            minDist1 = distance;
            twoPoint[1] = twoPoint[0];
            twoPoint[0] = pointsArray[element]; // error 1
        }
        else if (distance < minDist2) {
            minDist2 = distance;
            twoPoint[1] = pointsArray[element]; //error 1
        }
    }

    return twoPoint;
    }

    func getDistanceBetweenTwoPoints(point1:Point , point2:Point )->Double{
        return 5; //TODO
    }
func findNearsetPoints(pointsArray:[Point],myPoint:Point)->数组{
变量两点=[点]()
var minDist1:Double=DBL_MAX;
var minDist2:Double=DBL_MAX;
变量距离:双精度=0
对于pointsArray中的元素{
距离=获取两点之间的距离(点阵列[元素],点);//错误0
如果(距离Double{
返回5;//TODO
}
错误0:

/Users/user/Desktop/proj/ViewController.swift:145:38:无法使用“ViewController.Point”类型的索引为“[ViewController.Point]”类型的值下标

错误1:

/Users/user/Desktop/proj/ViewController.swift:149:38:无法使用“ViewController.Point”类型的索引为“[ViewController.Point]”类型的值下标

代码有什么问题?
谢谢

您的
元素
已经是
而不是索引

for element in pointsArray{
    distance = getDistanceBetweenTwoPoints(point1: element, point2: myPoint) // fix here
    if (distance < minDist1) {
        minDist1 = distance;
        twoPoint[1] = twoPoint[0];
        twoPoint[0] = element; // fix here
    }
    else if (distance < minDist2) {
        minDist2 = distance;
        twoPoint[1] = element; // fix here
    }
}
pointsArray中元素的
{
distance=GetDistanceBetween两点(point1:element,point2:myPoint)//在此处修复
如果(距离
附言:
为了更好地计算距离,也可以使用loook。只需按距离对数组排序,然后在排序后从数组中取出第一个。这更容易做到

您的
元素
已经是
而不是索引

for element in pointsArray{
    distance = getDistanceBetweenTwoPoints(point1: element, point2: myPoint) // fix here
    if (distance < minDist1) {
        minDist1 = distance;
        twoPoint[1] = twoPoint[0];
        twoPoint[0] = element; // fix here
    }
    else if (distance < minDist2) {
        minDist2 = distance;
        twoPoint[1] = element; // fix here
    }
}
pointsArray中元素的
{
distance=GetDistanceBetween两点(point1:element,point2:myPoint)//在此处修复
如果(距离
附言:
为了更好地计算距离,也可以使用loook。只需按距离对数组排序,然后在排序后从数组中取出第一个。这更容易做到

您声明了
获取两点之间的距离
作为命名参数

对于当前声明,您需要使用以下语法调用它:

getDistanceBetweenTwoPoints(point1: aPoint, point2: anotherPoint)
如果要在参数上不带标签的情况下调用它,则应按如下方式重新定义:

func getDistanceBetweenTwoPoints(
  _ point1:Point , 
  _ point2:Point )->Double{
        return 5; //TODO
    }

您将两个点之间的距离声明为使用命名参数

对于当前声明,您需要使用以下语法调用它:

getDistanceBetweenTwoPoints(point1: aPoint, point2: anotherPoint)
如果要在参数上不带标签的情况下调用它,则应按如下方式重新定义:

func getDistanceBetweenTwoPoints(
  _ point1:Point , 
  _ point2:Point )->Double{
        return 5; //TODO
    }

你想用
pointsArray.enumerated()
得到一组索引值,这是对的,但是对于他的用例,他不需要索引。你想用
pointsArray.enumerated()
得到一组索引值,这是对的,但是对于他的用例,他不需要索引这是一个很大的帮助!现在,它在第一行/Users/user/Desktop/proj/PdacJobTest/ViewController中大喊大叫。swift:137:47:调用中缺少参数标签'point1:point2',那么您不应该这样称呼它:
let twoints=findNearsetPoints(pointsArray:myPointsArray,myPoint:myPoint)
这是有问题的一行:distance=GetDistanceBetween两个点(元素,点);添加标签时,您需要使用标签,或使用不需要标签的
\uuu
标记标签。调用它:
distance=getDistanceBetweenTwoPoints(点1:element,点2:myPoint)
并将其更改为
myPoint
而不是类名。注意:您不需要
在SWIFT的最后一行,这是一个很大的帮助!现在,它在第一行/Users/user/Desktop/proj/PdacJobTest/ViewController中大喊大叫。swift:137:47:调用中缺少参数标签'point1:point2',那么您不应该这样称呼它:
let twoints=findNearsetPoints(pointsArray:myPointsArray,myPoint:myPoint)
这是有问题的一行:distance=GetDistanceBetween两个点(元素,点);添加标签时,您需要使用标签,或使用不需要标签的
\uuu
标记标签。调用它:
distance=getDistanceBetweenTwoPoints(点1:element,点2:myPoint)
并将其更改为
myPoint
而不是类名。注意:您不需要
在swift中的行尾