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()
}
我有以下代码并且可以正常工作。
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()
}