fat*_*cat 6 iphone mapkit mkmapview ipad ios
我遇到了一个崩溃,对我而言,好像这是Apple处理goToDefaultLocationMKMapView消息的方式.该消息依次调用[ALCityManager localeWithCode:],调用[NSLocale componentsFromLocaleIdentifier:]哪个调用调用CFLocaleCreateComponentsFromLocaleIdentifier哪个调用CFStringGetLength和崩溃.
有人可以帮我指出修复错误的方向,如果是我的代码导致这个,或者,帮助我找到一个解决方法,实际上,这是Apple的代码中的错误(不太可能?).
崩溃日志如下:
Incident Identifier: 84198BB6-45BD-493B-955F-75CCB5246DDD CrashReporter Key: 7dbf53bf1f1a3635d7c3c49e726dedc609ed9f3a Hardware Model: iPhone3,1 Process: MyApp [340] Path: /var/mobile/Applications/DCE9A5A1-8E24-4D4F-A1ED-9855C6CA1742/MyApp.app/MyApp Identifier: MyApp Version: ??? (???) Code Type: ARM (Native) Parent Process: launchd [1] Date/Time: 2011-03-25 10:36:06.382 -0700 OS Version: iPhone OS 4.3 (8F190) Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000 Crashed Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 CoreFoundation 0x00009a66 CFStringGetLength + 6 1 CoreFoundation 0x0002f994 CFLocaleCreateComponentsFromLocaleIdentifier + 60 2 CoreFoundation 0x000483b8 +[NSLocale componentsFromLocaleIdentifier:] + 12 3 AppSupport 0x00016eee -[ALCityManager localeWithCode:] + 130 4 MapKit 0x00038488 -[MKMapView goToDefaultLocation] + 80 5 Foundation 0x000907c6 __NSFireTimer + 130 6 CoreFoundation 0x00075a40 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 8 7 CoreFoundation 0x00077ec4 __CFRunLoopDoTimer + 844 8 CoreFoundation 0x0007883e __CFRunLoopRun + 1082 9 CoreFoundation 0x00008ebc CFRunLoopRunSpecific + 224 10 CoreFoundation 0x00008dc4 CFRunLoopRunInMode + 52 11 GraphicsServices 0x00004418 GSEventRunModal + 108 12 GraphicsServices 0x000044c4 GSEventRun + 56 13 UIKit 0x0002ed62 -[UIApplication _run] + 398 14 UIKit 0x0002c800 UIApplicationMain + 664 15 MyApp 0x000023f0 main (main.m:34) 16 MyApp 0x00002370 start + 44
我得到了完全相同的崩溃报告,仅适用于 iOS 4.3 / 4.3.1 和 iPhone 3GS/4 (armv7)
我认为这是一个 Apple Bug,iOS4.3 还有其他关于 MapKit 的丑陋回归。(就像MKReverseGeocoder早期发布的崩溃一样......)
一个简单的解决方法是覆盖,-[MKMapView goToDefaultLocation]但有被 Apple 拒绝的风险,因为它是一个私有 API... (因 bug 解决方法而被拒绝...我知道...人们很刻薄)
另一种解决方案是分析(反向...) CFLocaleCreateComponentsFromLocaleIdentifier并componentsFromLocaleIdentifier:了解[ALCityManager localeWithCode:]它如何崩溃,使用nil区域设置标识符进行调用,并可能以编程方式修复应用程序区域设置,因为它看起来像是来自从设备设置(或更糟糕的是,来自城市/地理位置)...或者至少警告用户其区域设置可能会引起麻烦...我只是不能(/想要)做一些事情,无法重现该错误。
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |