【问题标题】:how to loop through elements of array of <UnsafeMutablePointer> in Swift如何在 Swift 中遍历 <UnsafeMutablePointer> 数组的元素
【发布时间】:2014-12-14 22:38:46
【问题描述】:

我是 Swift 的新手,想通过调用 myPoly.points()MKPolygon 获得的 MKMapPoints&lt;UnsafeMutablePointer&gt; 数组进行循环。 但是,我不知道如何遍历 C 指针数组的每个元素。

for element in myPointsArray {} 

不起作用,我不知道如何在 Swift 中确定这种数组的元素数。有任何想法吗?感谢您的帮助!

【问题讨论】:

    标签: arrays swift


    【解决方案1】:

    UnsafeBufferPointer 提供了一个不安全的指针和一个计数作为集合,因此您可以 for..in 在它之上,安全地为它下标,将它传递给适用于集合的算法等:

    for point in UnsafeBufferPointer(start: poly.points(), count: poly.pointCount) {
        println("\(point.x),\(point.y)")
    }
    

    【讨论】:

    • 我收到Type does not conform to protocol SequenceType 错误
    【解决方案2】:

    您可以从MKPolygon.pointCount 属性中获取点数。并用传统的for ; ; {} 循环迭代points

    let myPointsArray = myPoly.points()
    
    for var i = 0, len = myPoly.pointCount; i < len; i++ {
        let point = myPointsArray[i]
        println(point)
    }
    

    【讨论】:

      猜你喜欢
      • 2012-12-03
      • 2021-08-12
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 2015-10-17
      • 2014-07-06
      相关资源
      最近更新 更多