2017-03-20 8 views
1

을 보여가되지는 약 3 초를 표시하고</p> <p>을 기각하지만 난 보통 수업 시간에 만들 때 그렇지 않은 허용 모든 시간을 허용/답변을 다음 사용자 탭을 보여 오랫동안

public class Location: NSObject, CLLocationManagerDelegate{ 
    public var locationManager = CLLocationManager() 

    public func RequestLocation(){ 
     self.locationManager.delegate = self 
     if CLLocationManager.authorizationStatus() == .notDetermined { 
      self.locationManager.requestWhenInUseAuthorization() 
     } 

     locationManager.startUpdatingLocation() 
     locationManager.distanceFilter = kCLDistanceFilterNone 
     locationManager.desiredAccuracy = kCLLocationAccuracyBest 
    } 
} 

편집 - 표시하는 추가 영업 이익의 코드 Location 인스턴스

import UIKit 
import DemoLocation 
class ViewController: UIViewController { 
    deinit { 
     print("deinit") 
    } 

    let location = Location() 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     location.RequestLocation() 
    } 
} 
+0

를 참조? –

+0

'Location'인스턴스가 유지되는지 확인해야합니다. –

+0

'Location'을 만드는 데 사용 된 코드를 표시 할 수 있습니까? –

답변

0

CLLocationManager이 해제 되 자마자 대화 상자가 즉시 사라지기 때문입니다.

당신은이 문제가 당신이 클래스 출시 될 현재 인스턴스 대 클래스에 존재하는 CLLocationManager을 변경해야합니다 극복하기 위해 인스턴스 또는 정적 변수

를 통해 locationManager에 대한 참조를 저장해야합니다. CLLocationManager 방법에 대한 자세한 내용은

이 방법을 호출하는 어떤 스레드에서 Apple API Reference

+0

'locationManager'를 인스턴스 변수로 사용하는 것이 좋습니다. 문제는 'Location'인스턴스가 어디에도 보유되지 않는 것 같습니다. . –

+0

그는 정적 또는 인스턴스에서 locationManager에 대한 참조가 있어야합니다. –