iPhone 应用程序在请求定位服务权限时崩溃
Posted
技术标签:
【中文标题】iPhone 应用程序在请求定位服务权限时崩溃【英文标题】:iPhone app crashes when asking for Location Services permission 【发布时间】:2012-07-31 02:38:03 【问题描述】:我的应用有一个按钮,当点击该按钮时,它会获取手机的当前位置并将 CLLocation 对象的时间戳 (NSString) 附加到另一个字符串。
用户第一次使用应用并调用该方法,应用崩溃:
'NSInvalidArgumentException',原因:'* -[__NSCFConstantString sringByAppendingString:]: nil argument'
我可以理解,因为该应用还没有使用位置服务的权限,并且时间戳仍然为零。
同时,应用崩溃后,会向用户请求权限,一旦用户授予应用使用定位服务的权限,此问题就会消失。
如何阻止应用程序第一次崩溃? 如果 [locationManager authorizationStatus] != 已授权,我已尝试在 viewWillLoad 中获取当前位置,但请求许可的通知只会立即出现。
感谢您的帮助!!
【问题讨论】:
【参考方案1】:为了确保在有引发异常的风险时使用nil
,您可以非常简单地检查是否为空:
if(stringToAppend)
// Do something with the string
这样,如果对象为 nil,则不会执行有风险的代码,应用程序也不会崩溃。
【讨论】:
以上是关于iPhone 应用程序在请求定位服务权限时崩溃的主要内容,如果未能解决你的问题,请参考以下文章
设备和模拟器上的调试工作时,临时 iPhone SIGSEGV 崩溃