0

私のアプリにはボタンがあり、タップすると電話の現在の場所を取得し、CLLocationオブジェクトのタイムスタンプ(NSString)を別の文字列に追加します。

ユーザーが初めてアプリを使用してこのメ​​ソッドを呼び出すと、アプリがクラッシュします。

'NSInvalidArgumentException'、理由:' * -[__ NSCFConstantString sringByAppendingString:]:nil引数'

アプリには位置情報サービスを使用する権限がまだなく、タイムスタンプはまだゼロであるため、これは理解できます。

同時に、アプリがクラッシュした後、ユーザーは許可を求められます。ユーザーがアプリに位置情報サービスの使用を許可すると、この問題は解消されます。

アプリが最初にクラッシュするのを防ぐにはどうすればよいですか?[locationManager authenticationStatus]!=が承認された場合、viewWillLoadで現在の場所を取得しようとしましたが、許可を求める通知はすぐに表示されます。

助けてくれてありがとう!

4

1 に答える 1

1

nil例外が発生するリスクがあるときに a を使用していることを確認するには、非常に簡単に null かどうかを確認できます。

if(stringToAppend) {
    // Do something with the string
}

そうすれば、オブジェクトが nil の場合、危険なコードは実行されず、アプリはクラッシュしません。

于 2012-07-31T03:02:32.743 に答える