【发布时间】:2017-04-26 16:48:55
【问题描述】:
我在尝试从 api 获取坐标时遇到问题
我正在尝试创建一个包含所有 URL 的常量类,之后我创建了另一个名为 location 的类,包括两个变量纬度和经度,我创建了一个函数来获取主控件中的纬度和经度并将其保存到位置类,所以我可以在常量类的 url 中使用它
问题是如果我尝试打印经纬度坐标
从函数中它正确显示在输出中但是当我尝试在常量类中使用它时显示nil
我的常量类
import Foundation
import Alamofire
let Base_Url = "http://api.openweathermap.org/data/2.5/weather?"
let lats = "lat="
let lons = "&lon="
let AppId = "&appid=951191ec976939570dc1aa8e0b5ed6bd"
var lat = locationClass.sharedinstance.lat
var lon = locationClass.sharedinstance.lon
let CurrentWeatherUrl = "\(Base_Url)\(lats)37.785834000000001\(lons)-122.406417\(AppId)"
let FourCastWeatherUrl = "http://api.openweathermap.org/data/2.5/forecast/daily?lat=21.5169444&lon=39.2191667&cnt=10&appid=951191ec976939570dc1aa8e0b5ed6bd"
typealias DownloadCompleted = () -> ()
位置类
import CoreLocation
class locationClass {
static var sharedinstance = locationClass()
private init () {}
var lat: Double!
var lon: Double!
}
获取经纬度的函数
func currentLocationAuth(){
if CLLocationManager.authorizationStatus() == .authorizedWhenInUse{
currentlocation = locationmanager.location
locationClass.sharedinstance.lat = currentlocation.coordinate.latitude
locationClass.sharedinstance.lon = currentlocation.coordinate.longitude
print(locationClass.sharedinstance.lat,locationClass.sharedinstance.lon)
}else{
locationmanager.requestWhenInUseAuthorization()
currentLocationAuth()
}
为什么当我尝试打印主控件显示的值时,但当我尝试在显示为空的常量类中使用它时
【问题讨论】:
-
我认为如果您在 currentLocationAuth 方法之后访问 lat long 变量,这应该可以正常工作
标签: ios swift3 ios10 core-location