0

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

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

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

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

同时,应用程序崩溃后,会向用户请求权限,一旦用户授予应用程序使用定位服务的权限,此问题就会消失。

如何阻止应用程序第一次崩溃?如果 [locationManager authorizationStatus] != 已授权,我试图在 viewWillLoad 中获取当前位置,但请求许可的通知只会立即出现。

感谢您的帮助!

4

1 回答 1

1

为确保您nil在有引发异常的风险时使用 a ,您可以非常简单地检查无效性:

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

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

于 2012-07-31T03:02:32.743 回答