【发布时间】:2015-07-13 22:46:22
【问题描述】:
我正在尝试使用 Swift 2(Xcode 7 beta,iOS 9)设置 CoreLocation,但从未调用过“didUpdateLocations”函数。我真的很感激我能得到的任何帮助。这是我的代码:
//
// ZmanimController.swift
// YidKit
//
// Created by Dani Smith on 7/12/15.
// Copyright © 2015 Daniel Smith. All rights reserved.
//
import Foundation
import CoreLocation
class ZmanimController: NSObject, CLLocationManagerDelegate
{
//Variables*****************************************
let locationManager = CLLocationManager()
var lat = 0.0
var long = 0.0
var alt = 0.0
var kosherCocoaLocation: KCGeoLocation = KCGeoLocation()
let dateFormatter = NSDateFormatter()
//The zmanim calendar
override init()
{
super.init()
self.locationManager.requestWhenInUseAuthorization()
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
//Calendars
let zmanimCalendar: KCComplexZmanimCalendar = KCComplexZmanimCalendar(location: kosherCocoaLocation)
let astronomicalCalendar: KCAstronomicalCalendar = KCAstronomicalCalendar(location: kosherCocoaLocation)
astronomicalCalendar.workingDate = NSDate()
//Date formatter stuff
dateFormatter.timeStyle = .MediumStyle
dateFormatter.timeZone = NSTimeZone.localTimeZone()
print(dateFormatter.stringFromDate(zmanimCalendar.alos72()))
}
//loacation stuff**************************
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
var latestLocation: AnyObject = locations[locations.count - 1]
let locationArray = locations as NSArray
let locationObj = locationArray.lastObject as! CLLocation
let coord = locationObj.coordinate
var latitude = String(format: "%.4f",
coord.latitude)
var longitude = String(format: "%.4f",
coord.longitude)
var horizontalAccuracy = String(format: "%.4f",
latestLocation.horizontalAccuracy)
var altitude = String(format: "%.4f",
latestLocation.altitude)
var verticalAccuracy = String(format: "%.4f",
latestLocation.verticalAccuracy)
print(latitude)
print("wooe3reds")
}
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
print("error")
}
}
谢谢!
更新: 这是我初始化它的方式:
import Foundation
import UIKit
class ZmanimViewController: YidController
{
override func viewDidLoad()
{
let controller = ZmanimController()
}
}
【问题讨论】:
-
你是如何实例化这个对象的?你对它有强烈的引用吗?
-
@Paulw11 在 UIViewController 中:“让控制器 = ZmanimController()”
-
是在函数中还是作为对象属性?请更新您的问题以显示该行的上下文。
标签: ios core-location swift2 xcode7