2012-07-31 35 views
0

我的应用程序有一个按钮,当它点击时,获取手机的当前位置并将CLLocation对象的时间戳记(NSString)附加到另一个字符串。iPhone应用程序在请求位置服务权限时崩溃

用户使用的应用程序,并调用该方法中,应用程序崩溃的第一次:

'NSInvalidArgumentException' 的,原因是: '* - [__ NSCFConstantString sringByAppendingString:]:无参数'

其我可以理解,因为该应用程序尚无权使用位置服务,但时间戳仍然为零。

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

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

感谢您的帮助!

回答

1

为了确保您使用的是nil时,有抛出异常的风险,你可以检查无效得很干脆:

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

如果对象是零那样的话,危险代码不会执行和应用程序不会崩溃。