代码之家  ›  专栏  ›  技术社区  ›  Ben Scheirman

MKReverseGeocoder导致EXC\u访问错误?

  •  6
  • Ben Scheirman  · 技术社区  · 14 年前

    我有一个应用程序正在显示间歇性崩溃。崩溃日志显示一个堆栈跟踪,这是我很难破译,所以希望有人看到了这一点,可以指出我在正确的方向。

    现在的情况是,有时候这个MKReverseGeocoder需要很长时间才能回来。最终我假设我会得到一个失败的回调,有时我会,但它可以 分钟

    由于API调用还发出了另一个MKReverseGeocoder请求,我认为可能存在多个并发调用的问题?

    这是我的stacktrace:

    Program received signal:  “EXC_BAD_ACCESS”.
    (gdb) backtrace
    #0  0x30c237a0 in -[MKPlacemark _mapkit_cache_heapTime] ()
    #1  0x30bffe60 in compareTimes ()
    #2  0x32403b24 in CFBinaryHeapAddValue ()
    #3  0x30c0030c in -[MKCache setObject:forKey:] ()
    #4  0x30c2aa48 in -[MKReverseGeocodeCache addPlacemark:forCoordinate:] ()
    #5  0x30c2251c in -[MKReverseGeocoder requester:didReceiveResponse:forRequest:] ()
    #6  0x3388cc1c in -[PBRequester _tryParseData] ()
    #7  0x3388b288 in -[PBRequester connection:didReceiveData:] ()
    #8  0x337490ce in -[NSURLConnection(NSURLConnectionReallyInternal) sendDidReceiveData:originalLength:] ()
    #9  0x33748ff0 in _NSURLConnectionDidReceiveData ()
    #10 0x30899ff8 in URLConnectionClient::_clientDidReceiveData ()
    #11 0x3088ca3e in URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload ()
    #12 0x3088cb40 in URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload ()
    #13 0x3088cb40 in URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload ()
    #14 0x3088c8ce in URLConnectionClient::processEvents ()
    #15 0x3088c878 in URLConnection::multiplexerClientPerform ()
    #16 0x3088c7f8 in MultiplexerSource::perform ()
    #17 0x3088c798 in MultiplexerSource::_perform ()
    #18 0x323f4f48 in CFRunLoopRunSpecific ()
    #19 0x323f4c1e in CFRunLoopRunInMode ()
    #20 0x335051c8 in GSEventRunModal ()
    #21 0x324a6c30 in -[UIApplication _run] ()
    #22 0x324a5230 in UIApplicationMain ()
    #23 0x000024f8 in main (argc=1, argv=0x2ffff504) at /Users/ben/projects/ABC/iphone/ABC/main.m:14
    

    因为它看起来甚至没有调用我的回调方法,所以我不知道在哪里可以找到这个EXC\u BAD\u访问问题。我的委托当然仍然处于活动状态(我盯着启动请求的视图控制器)。

    最后一点:到目前为止,它只出现在iOS3.1.3上。我还没有看到iOS4.0出现这种情况

    2 回复  |  直到 14 年前
        1
  •  0
  •   Allen    12 年前

    尝试使用xcode配置文件中的Zombies工具。这将帮助您找到导致EXC\u BAD\u访问的对象内存。

        2
  •  0
  •   Ankit Vyas    13 年前

    下面是一个用于反向地理编码的googleapi文档,它返回JSON和XML输出,并且是可靠和稳定的API。

    http://code.google.com/apis/maps/documentation/geocoding/

    例如,这个url提供JSON输出,因此使用它可以解决有问题,让我来我知道这对你有用吗?

    http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true_or_false

    推荐文章