iOS 6 では、purpose
位置情報サービスを使用する理由を説明する CLLocationManager のプロパティ ( @property(copy, nonatomic) NSString *purpose
) が非推奨になりました。
Apple が提案している代替品があるとすれば、それは何ですか?
iOS 6 では、purpose
位置情報サービスを使用する理由を説明する CLLocationManager のプロパティ ( @property(copy, nonatomic) NSString *purpose
) が非推奨になりました。
Apple が提案している代替品があるとすれば、それは何ですか?
iOS 6のプロパティに代わるものは、purpose
名前が付けられた新しい Info.plist キーですNSLocationUsageDescription
(別名 "Privacy - Location Usage Description")。
キーはInformation Property List Key Reference に記載されていますが、残念ながら、purpose
プロパティの非推奨メモには記載されていません。
ただし、 にCLLocationManager.h
は次のコメントがあります。
*
非推奨。キー NSLocationUsageDescription を使用して、Info.plist に目的の文字列を設定します。
コードでは、キーとpurpose
プロパティの両方を設定できます (ただし、将来そのメソッドが実際に削除された場合に、ロケーション マネージャーが最初にそのセレクターに応答するかどうかを確認することをお勧めします)。
iOS 6 で実行している場合、ロケーション マネージャーはキーを使用します。
iOS 6 未満で実行する場合、キーは無視され、purpose
プロパティが使用されます。
アプリで同じ問題が発生しました。
アクティビティを設定できるようになりました。CLLocationManager!
さまざまなCLActivityTypeを選択できるため、独自の目的を記述する必要はありません。
たとえば、ナビゲーションベースのアプリの場合です
[self.gps setActivityType:CLActivityTypeAutomotiveNavigation];
その他の可能なCLActivityTypesは次のとおりです。
- CLActivityTypeFitness
- CLActivityTypeOther
- CLActivityTypeOtherNavigation