2016-08-02 2 views

ответ

2
var arrayOfPoints : [CGPoint] = [.....]//your array of points 

for point in arrayOfPoints { 
    let y = point.y 
    //You now have just the y coordinate of each point in the array. 
} 

Или если вы используете .enumerate() синтаксис.

for (index, point) in arrayOfPoints.enumerate() { 
    let y = point.y 
    //You now have just the y coordinate of each point in the array. 

    print(point.y) //Prints y coordinate of each point. 
} 

Swift делает общий for цикл операций простой. Например, Если вам нужен массив всех координат y, вы можете использовать хороший один лайнер в swift.

let arrayOfYCoordinates : [CGFloat] = arrayOfPoints.map { $0.y } 

Пройдите, чтобы пройти каждый координатор y к той же функции.

arrayOfPoints.map { myFunction($0.y) } 
+0

Ok. Я попытался получить координаты Y через этот код: для (индекс, точка) в arrayOfPoints.enumerate() {} Но это не работает для меня. Что не так? – andy

+0

Использование синтаксиса '.enumerate()', 'index' - это позиция, в которой ваш' CGPoint' находится в массиве 'CGPoints', а' point' - это экземпляр 'CGPoint' в вашем массиве. Таким образом, вы получили бы доступ к координате y, написав 'point.y' – NSGangster

+0

@Swift. Я обновляю свой ответ с помощью синтаксиса' .enumerate'. – NSGangster

0

Почему простая петля foreach с point.y не работает?

1

Держи

let arrayOfPoints : [CGPoint] = [CGPoint(x: 1, y: 2), CGPoint(x: 3, y: 4)] 

let yCoordinates = arrayOfPoints.map { $0.y } 

for y in yCoordinates { 
    print("y = \(y)") //Or whatever you want to do with the y coordinates 
} 
Смежные вопросы