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