创建一个使用CoreLocation确定纬度和经度的swift结构

时间:2014-11-26 21:41:54

标签: swift struct core-location

如何使用CoreLocation框架创建包含确定纬度和经度的方法的结构?

3 个答案:

答案 0 :(得分:1)

为了使用CoreLocation框架,我们必须导入它:

import CoreLocation

创建struct ...这是非常基本的Swift东西:

struct CLStruct {
    func fetchCoordinates() -> (latitude: Double, longitude: Double) {
        // do CoreLocation stuff

    }
}

虽然可能更有用的是struct a latitude和longitude属性以及实例化其中一个结构的方法:

struct CLStruct {
    var latitude: Double
    var longitude: Double

    static func structForCurrentPosition() -> CLStruct {
        // do CLStuff to fetch latitude and longitude
        return self(latitude: 37.3318, longitude: -122.0296)
    }
}

我们可以这样使用它:

let currentLocation = CLStruct.structForCurrentPosition()

但是,尽管如此,绝对值得注意的是CoreLocation框架有一个名为CLLocation的类,它已经包含了表示位置所需的一切。如果有的话,你可能很想简单地扩展或子类化这个对象,以便随时添加它。

答案 1 :(得分:0)

创建:

struct Location {
    let latitude: Double
    let longitude: Double
}

实例化:

let myLocation = Location(latitude: 37.331830, longitude: -122.005792)

访问权限:

print(myLocation.latitude) // 37.331830
print(myLocation.longitude) // -122.005792

答案 2 :(得分:0)

您不应该重新创建轮子。苹果已经为它提供了一种结构体,并提供了几种辅助方法,并为其他开发人员提供了更广泛的熟悉度。

它称为void list_sort( list_t* list ){ //if 0 or 1 element list if (list->head==NULL || list->head->next==NULL) { return; } //stuck on what to do after this point //I know I need to split the list into two sublists, then recursively call list_sort again //then finally merge the two sublists }

https://developer.apple.com/documentation/corelocation/cllocationcoordinate2d