iOS 6では、ロケーションサービス(@property(copy, nonatomic) NSString *purpose
)を使用する理由を説明するために、CLLocationManagerのpurpose
プロパティが廃止されました。CLLocationManagerの「目的」プロパティの置き換え
何を交換、もしあれば、Appleが提案されていますか?
iOS 6では、ロケーションサービス(@property(copy, nonatomic) NSString *purpose
)を使用する理由を説明するために、CLLocationManagerのpurpose
プロパティが廃止されました。CLLocationManagerの「目的」プロパティの置き換え
何を交換、もしあれば、Appleが提案されていますか?
のiOS 6でpurpose
プロパティの交換がNSLocationUsageDescription
という新しいInfo.plistのキーです(:ここ
は は他の可能CLActivityTypesがある
[self.gps setActivityType:CLActivityTypeAutomotiveNavigation];
ナビゲーションベースのアプリケーション
のために、たとえばです別名「プライバシー - ロケーション使用説明」)。鍵はdocumented in the Information Property List Key Referenceですが、残念ながらpurpose
プロパティの非推奨注釈には記載されていません。
*
非推奨:しかし、
CLLocationManager.h
このコメントを持っています。キーNSLocationUsageDescriptionを使用して目的の文字列をInfo.plistに設定します。あなたのコードで
、あなたはキーとpurpose
プロパティの両方を設定できます(しかし、あなたは/場合は、そのメソッドが実際に将来的に削除されたときにロケーションマネージャは、最初にそのセレクタに応答するかどうかをチェックすることもできます)。
のiOS 6の下で実行されている場合は、ロケーションマネージャは、キーを使用します。
iOS 6未満で実行すると、キーは無視され、purpose
プロパティが使用されます。
この文字列をどのように正確にローカライズできますか?または、この目的のためにローカライズされたinfoplist.stringsが必要ですか? –
@BobdeGraafローカライズされたinfoplist.stringsは、ここから行く方法のように聞こえる:http://stackoverflow.com/a/14144989/159758 – DonnaLea
私のアプリでは同じ問題がありました。
アクティビティを設定できるようになりましたCLLocationManager!
さまざまなCLActivityTypesを選択できるため、独自の目的をもう作成する必要はありません。
- CLActivityTypeFitness
- CLActivityTypeOther
- CLActivityTypeOtherNavigation
スコアが30以上の回答があります。あなたはそれを受け入れられたものとしてマーキングすると考えましたか? – bdesham