【问题标题】:iPhone app crashes when asking for Location Services permissioniPhone 应用程序在请求定位服务权限时崩溃
【发布时间】:2012-07-31 02:38:03
【问题描述】:

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

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

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

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

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

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

感谢您的帮助!!

【问题讨论】:

    标签: iphone ios cllocationmanager


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 2016-12-22
      • 2018-09-15
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多