43

iOS 6 では、purpose位置情報サービスを使用する理由を説明する CLLocationManager のプロパティ ( @property(copy, nonatomic) NSString *purpose) が非推奨になりました。

Apple が提案している代替品があるとすれば、それは何ですか?

4

2 に答える 2

62

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プロパティが使用されます。

于 2012-09-25T12:24:53.570 に答える
3

アプリで同じ問題が発生しました。

アクティビティを設定できるようになりました。CLLocationManager!さまざまなCLActivityTypeを選択できるため、独自の目的を記述する必要はありません。

たとえば、ナビゲーションベースのアプリの場合です

[self.gps setActivityType:CLActivityTypeAutomotiveNavigation];

その他の可能なCLActivityTypesは次のとおりです。

 - CLActivityTypeFitness
 - CLActivityTypeOther
 - CLActivityTypeOtherNavigation
于 2012-09-25T11:04:42.527 に答える