iPhone 应用程序在请求定位服务权限时崩溃

标签 iphone ios cllocationmanager

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

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

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

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

同时,应用崩溃后,会向用户请求许可,一旦用户授予应用使用位置服务的权限,这个问题就消失了。

如何阻止应用程序第一次崩溃? 我尝试在 [locationManagerauthorizationStatus] !=authorized 的情况下获取 viewWillLoad 中的当前位置,但请求权限的通知只会立即出现。

感谢您的帮助!!

最佳答案

为了确保在存在引发异常的风险时使用 nil,您可以非常简单地检查是否为空:

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

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

关于iPhone 应用程序在请求定位服务权限时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11732346/

相关文章:

iphone - 当用户输入一定数量的字符时如何自动将光标前进到下一个字段

iphone - 如何显示相对于我当前位置的位置?

ios - 导航栏中的 UISearchController

ios - 点击 UITableView 的单元格,其他 View 不会出现

iOS 显示警报取决于用户所在的国家/地区

ios - 核心位置 : efficient way to keep track user's location

iphone - iPhone应用程序在运行中或启动期间崩溃

ios - MBProgressHUD + Facebook SKD : Nested blocks

ios - Swift:didExitRegion 延迟导致错过信标事件

iphone - 为 UIAlertView 编写函数?