要求获得位置服务权限时,iPhone应用程序崩溃

时间:2012-07-31 02:38:03

标签: iphone ios cllocationmanager

我的应用程序有一个按钮,当被点击时,获取手机的当前位置并将CLLocation对象的时间戳(NSString)附加到另一个字符串。

用户第一次使用该应用并调用此方法时,应用崩溃了:

'NSInvalidArgumentException',原因:' * - [__ NSCFConstantString sringByAppendingString:]:nil参数'

我可以理解,因为应用程序还没有使用位置服务的权限,时间戳仍为零。

同时,在应用程序崩溃后,系统会要求用户提供权限,一旦用户授予应用程序使用位置服务的权限,此问题就会消失。

如何阻止应用首次崩溃? 如果[locationManager authorizationStatus]!=授权,我试图在viewWillLoad中获取当前位置,但只会立即显示请求权限的通知。

感谢您的帮助!!

1 个答案:

答案 0 :(得分:1)

要确保在有可能引发异常的情况下使用nil,您可以非常简单地检查无效:

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

这样,如果对象为nil,则不会执行有风险的代码,应用程序也不会崩溃。