swift / 如何在if语句中设置全局变量

swift / how set global variable in if statement

我有以下代码并且可以正常工作。

if passedValue == "location1" {
        var initialLocation = CLLocation(latitude: 48.8618, longitude: 2.1539)
        centerMapOnLocation(initialLocation)
        loadInitialData()
        }
if passedValue == "location2" {
        var initialLocation = CLLocation(latitude: 52.2398, longitude: 3.3579)
        centerMapOnLocation(initialLocation)
        loadInitialData()
        }

但是为了更简洁,我写了这个,但是我收到了以下错误消息:"Use of unresolved identifier 'initial location'"。有什么想法吗?

if passedValue == "location1" {
        var initialLocation = CLLocation(latitude: 48.8618, longitude: 2.1539)
        }
if passedValue == "location2" {
        var initialLocation = CLLocation(latitude: 52.2398, longitude: 3.3579)
        }

centerMapOnLocation(initialLocation)
        loadInitialData()

在外部声明 var initialLocation: CLLocation! 并在内部使用 initialLocation

您可能还想在使用 centerMapOnLocation() 之前检查 initialLocation 是否为 nil 以防万一。

if initialLocation != nil {
    centerMapOnLocation(initialLocation)
}

解释:centerMapOnLocation() 看不到 initialLocation 因为它只存在于 if 语句中。

完整代码:

var initialLocation: CLLocation!
if passedValue == "location1" {
    initialLocation = CLLocation(latitude: 48.8618, longitude: 2.1539)
}
else if passedValue == "location2" {
    initialLocation = CLLocation(latitude: 52.2398, longitude: 3.3579)
}

if initialLocation != nil {
    centerMapOnLocation(initialLocation)
    loadInitialData()
}