2015-10-16 94 views
0

我正在拿我的iOS8應用程序,並準備好iOS9。我讀過CLLocationManager現在有一個名爲allowBackgroundLocationUpdates的成員變量,需要在iOS9中設置爲true。但是,Xcode不會將其識別爲CLLocationManager的成員。我需要更改Xcode以識別該屬性?我正在運行Xcode 7.CLLocationManager沒有allowBackgroundLocationUpdates成員變量

- (BOOL)isLocationServicesEnabled 
    { 
     BOOL locationServicesEnabledInstancePropertyAvailable = [self.locationManager respondsToSelector:@selector(locationServicesEnabled)]; // iOS 3.x 
     BOOL locationServicesEnabledClassPropertyAvailable = [CLLocationManager respondsToSelector:@selector(locationServicesEnabled)]; // iOS 4.x 

     if (locationServicesEnabledClassPropertyAvailable) { // iOS 4.x 
      return [CLLocationManager locationServicesEnabled]; 
     } else if (locationServicesEnabledInstancePropertyAvailable) { // iOS 2.x, iOS 3.x 
      return [CLLocationManager locationServicesEnabled]; 
     } else { 
      return NO; 
     } 
    } 

回答

0

此功能(allowsBackgroundLocationUpdates)僅適用於iOS 9。請注意,它是實例屬性,而不是類屬性。

只要你連接到iOS 8,你不必擔心它,因爲即使你在iOS 9上運行,它也不會影響你。如果你連接到iOS 9,你必須設置這個屬性在您所持有的每個CLLocationManager實例上,或者您的後臺位置更新不會發生。

https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/#//apple_ref/occ/instp/CLLocationManager/allowsBackgroundLocationUpdates

+0

如何設置此屬性?我已經嘗試過CLLocationManagerInstance.allowBackgroundLocaitonUpdates = YES;但它不能識別該實例屬性。 – TBurt

+0

我不知道科爾多瓦。我只知道如何在Objective-C或Swift中正常執行它。 – matt

+0

對不起,我感到困惑。我正在編輯實際的Objective-C代碼。 Cordova基本上在Objective-C中創建了一個Web視圖中的Xcode項目。這可以讓你用JavaScript編寫應用程序(使用html和css作爲視圖)並將它們轉換爲移動應用程序。現在我正在編輯Cordova項目的Objective-C部分。我已將一些代碼添加到原始帖子中。 – TBurt