尝试获取设备位置时,iOS应用程序崩溃-线程1:EXC_BAD_ACCESS

凯文·拉詹(Kevin Rajan)

我是iOS开发的新手,很抱歉,如果我不知道此问题有一个简单的解决方法。

因此,我当前正在创建一个需要用户当前位置作为地址的应用程序。

因此,在类标题中,我确保包含CLLLocationManagerDelegate:

class SignupViewController: UIViewController, CLLocationManagerDelegate  {...}

接下来,我为位置管理器创建了一个实例变量:

let locationManager = CLLocationManager()

我还创建了CLLocationManagerDelegate函数:

// MARK: CLLocationManagerDelegate functions

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    for location in locations {
        self.getLocationAddress(location)
    }
}

func getLocationAddress(location:CLLocation) -> CLPlacemark? {
    let geocoder = CLGeocoder()
    print("-> Finding user address...")
    var placemark:CLPlacemark!
    geocoder.reverseGeocodeLocation(location, completionHandler: {(placemarks, error)->Void in
        if error == nil && placemarks!.count > 0 {
            placemark = placemarks![0] as CLPlacemark
            print(location)
            if placemark != nil {
                print(CLPlacemark().toString(placemark))
            } else {
                print("Problem with data received from geocoder")
            }
        }
    })
    return placemark
}
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
    print("Error when updating location " + error.localizedDescription)
}

// MARK: Helper functions


func getLocation() {
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.requestWhenInUseAuthorization()
    locationManager.startUpdatingLocation()
}

我也有一个函数toString定义为CLPlacemark的扩展:

extension CLPlacemark {
func toString(placemark: CLPlacemark) -> String {
    var addressString : String = ""
    if placemark.ISOcountryCode == "TW" /*Address Format in Chinese*/ {
        if placemark.country != nil {
            addressString = placemark.country!
        }
        if placemark.subAdministrativeArea != nil {
            addressString = addressString + placemark.subAdministrativeArea! + ", "
        }
        if placemark.postalCode != nil {
            addressString = addressString + placemark.postalCode! + " "
        }
        if placemark.locality != nil {
            addressString = addressString + placemark.locality!
        }
        if placemark.thoroughfare != nil {
            addressString = addressString + placemark.thoroughfare!
        }
        if placemark.subThoroughfare != nil {
            addressString = addressString + placemark.subThoroughfare!
        }
    } else {
        if placemark.subThoroughfare != nil {
            addressString = placemark.subThoroughfare! + " "
        }
        if placemark.thoroughfare != nil {
            addressString = addressString + placemark.thoroughfare! + ", "
        }
        if placemark.postalCode != nil {
            addressString = addressString + placemark.postalCode! + " "
        }
        if placemark.locality != nil {
            addressString = addressString + placemark.locality! + ", "
        }
        if placemark.administrativeArea != nil {
            addressString = addressString + placemark.administrativeArea! + " "
        }
        if placemark.country != nil {
            addressString = addressString + placemark.country!
        }
    }
    return addressString
}

当我运行我的代码时,最初似乎一切正常,这是控制台中的输出:

-> Finding user address...
-> Finding user address...
-> Finding user address...
-> Finding user address...
<+40.10886714,-88.23303354> +/- 10.00m (speed 0.00 mps / course 0.00) @ 5/8/16, 11:34:22 PM Central Daylight Time
401 E John St, 61820 Champaign, IL United States
(lldb)

但是,最后它崩溃并显示(lldb),并显示错误线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x8) 它还显示错误线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x8)

控制台截图

不太清楚为什么打印地址后应用程序崩溃了。

先谢谢您的帮助!

泰森·维格涅什(Tyson Vignesh)

但我不知道该怎么解决,

而不是调用扩展功能为

打印(CLPlacemark()。toString(placemark))

这样称呼它,

打印(placemark.toString(placemark))

因为存在内存泄漏问题。现在,它没有崩溃。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试获取设备位置时,iOS应用程序崩溃-线程1:EXC_BAD_ACCESS

来自分类Dev

线程1:EXC_BAD_ACCESS(代码= 1,地址=)iOS

来自分类Dev

返回上一个视图时,应用程序崩溃-线程1:EXC_BAD_ACCESS

来自分类Dev

返回上一个视图时,应用程序崩溃-线程1:EXC_BAD_ACCESS

来自分类Dev

OpenCV导致EXC_BAD_ACCESS线程1:UIApplicationMain中的代码= 2崩溃

来自分类Dev

OpenCV导致EXC_BAD_ACCESS线程1:UIApplicationMain中的代码= 2崩溃

来自分类Dev

使用数组时无法找出“线程1:EXC_BAD_ACCESS”错误

来自分类Dev

Swift项目因线程1而崩溃:EXC_BAD_ACCESS(代码= 1,地址= 0x0)

来自分类Dev

Xcode 12.2崩溃。线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x7e4)

来自分类Dev

在 swift 中的领域查询中获取线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x11)

来自分类Dev

iOS错误:线程1:EXC_BAD_ACCESS(code = 1,address = 0x726f635f)?

来自分类Dev

Swift:glDrawElements崩溃,代码为EXC_BAD_ACCESS = 1

来自分类Dev

iOS图表错误:线程1:EXC_BAD_ACCESS(代码= 2,地址= 0x2a0c220)

来自分类Dev

iOS应用因EXC_BAD_ACCESS(代码= 1,地址= 0x0)而崩溃

来自分类Dev

iOS 7中的String(format :)崩溃-需要替代方法。线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x10)

来自分类Dev

iOS 7中的String(format :)崩溃-需要替代方法。线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x10)

来自分类Dev

UITextFieldDelegate崩溃(exc_bad_access)

来自分类Dev

NewRelic因EXC_BAD_ACCESS而崩溃

来自分类Dev

iOS:来自iOS14 EXC_BAD_ACCESS线程队列的随机错误消息:NSManagedObjectContext NSInternalAdditions

来自分类Dev

在AVAssetReader中获取Exc_Bad_access

来自分类Dev

在AVAssetReader中获取Exc_Bad_access

来自分类Dev

EXC_BAD_ACCESS on iOS 8.1 with Dictionary

来自分类Dev

iOS EXC_BAD_ACCESS:如何调试?

来自分类Dev

生成nspredicate时EXC_BAD_ACCESS

来自分类Dev

使用NativeCSS时EXC_BAD_ACCESS

来自分类Dev

执行块时EXC_BAD_ACCESS

来自分类Dev

EXC_BAD_ACCESS 执行关闭时

来自分类Dev

iOS应用使用自定义Tensorflow tflite模型引发错误线程4:EXC_BAD_ACCESS(代码= 1,地址= 0x0)

来自分类Dev

如何使用银行程序在XCODE中修复线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x7ffeefc00000)?

Related 相关文章

  1. 1

    尝试获取设备位置时,iOS应用程序崩溃-线程1:EXC_BAD_ACCESS

  2. 2

    线程1:EXC_BAD_ACCESS(代码= 1,地址=)iOS

  3. 3

    返回上一个视图时,应用程序崩溃-线程1:EXC_BAD_ACCESS

  4. 4

    返回上一个视图时,应用程序崩溃-线程1:EXC_BAD_ACCESS

  5. 5

    OpenCV导致EXC_BAD_ACCESS线程1:UIApplicationMain中的代码= 2崩溃

  6. 6

    OpenCV导致EXC_BAD_ACCESS线程1:UIApplicationMain中的代码= 2崩溃

  7. 7

    使用数组时无法找出“线程1:EXC_BAD_ACCESS”错误

  8. 8

    Swift项目因线程1而崩溃:EXC_BAD_ACCESS(代码= 1,地址= 0x0)

  9. 9

    Xcode 12.2崩溃。线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x7e4)

  10. 10

    在 swift 中的领域查询中获取线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x11)

  11. 11

    iOS错误:线程1:EXC_BAD_ACCESS(code = 1,address = 0x726f635f)?

  12. 12

    Swift:glDrawElements崩溃,代码为EXC_BAD_ACCESS = 1

  13. 13

    iOS图表错误:线程1:EXC_BAD_ACCESS(代码= 2,地址= 0x2a0c220)

  14. 14

    iOS应用因EXC_BAD_ACCESS(代码= 1,地址= 0x0)而崩溃

  15. 15

    iOS 7中的String(format :)崩溃-需要替代方法。线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x10)

  16. 16

    iOS 7中的String(format :)崩溃-需要替代方法。线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x10)

  17. 17

    UITextFieldDelegate崩溃(exc_bad_access)

  18. 18

    NewRelic因EXC_BAD_ACCESS而崩溃

  19. 19

    iOS:来自iOS14 EXC_BAD_ACCESS线程队列的随机错误消息:NSManagedObjectContext NSInternalAdditions

  20. 20

    在AVAssetReader中获取Exc_Bad_access

  21. 21

    在AVAssetReader中获取Exc_Bad_access

  22. 22

    EXC_BAD_ACCESS on iOS 8.1 with Dictionary

  23. 23

    iOS EXC_BAD_ACCESS:如何调试?

  24. 24

    生成nspredicate时EXC_BAD_ACCESS

  25. 25

    使用NativeCSS时EXC_BAD_ACCESS

  26. 26

    执行块时EXC_BAD_ACCESS

  27. 27

    EXC_BAD_ACCESS 执行关闭时

  28. 28

    iOS应用使用自定义Tensorflow tflite模型引发错误线程4:EXC_BAD_ACCESS(代码= 1,地址= 0x0)

  29. 29

    如何使用银行程序在XCODE中修复线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x7ffeefc00000)?

热门标签

归档