6

断続的なクラッシュを示すアプリがあります。クラッシュ ログは、私には解読が難しいスタック トレースを示しているため、他の誰かがこれを見て、正しい方向に向けることができることを願っています。

基本的に、アプリは起動時にリバース ジオコーディング リクエストを実行して、ユーザーの位置をラベルに表示します。さらに、特定の API 呼び出しに対して別のリバース ジオコーディング リクエストを行います。

何が起こっているかというと、この MKReverseGeocoder が戻ってくるまでに非常に長い時間がかかることがあります。最終的には、失敗のコールバックが返されると思いますが、実際にそうなる場合もありますが、これが発生するまでに数分かかる場合があります。

API 呼び出しは別の MKReverseGeocoder リクエストも発行しているため、複数の同時呼び出しに問題があるのではないでしょうか?

ここに私のスタックトレースがあります:

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_BAD_ACCESS の問題を探す場所がわかりません。私のデリゲートは確かにまだアクティブです (リクエストを開始したビュー コントローラーを見つめています)。

1 最後の注意: これまでのところ iOS 3.1.3 でのみ登場しています。iOS 4.0 ではまだ発生していません.u

4

2 に答える 2

0

xcodeプロファイルからゾンビインストゥルメントを使用してみてください。これは、EXC_BAD_ACCESSの原因となっているオブジェクトメモリを見つけるのに役立ちます。

于 2012-08-23T10:46:16.550 に答える
0

これは、JSON と XML 出力を返すリバース ジオコーディングの Google API ドキュメントで、信頼性が高く安定した 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

于 2011-11-24T13:13:06.347 に答える