2013-09-27 145 views
5

我已经上传的应用程序,它被拒绝说EXC_BAD_ACCESS(SIGSEGV) - KERN_INVALID_ADDRESS

我们发现您的应用崩溃在iPad上运行iOS 7,这是不符合在App Store审查指南。

那么我上传的时间,iOS7没有启动。

崩溃报告说

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Subtype: KERN_INVALID_ADDRESS at 0xb1b1f20b 

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 libobjc.A.dylib     0x3a2f5b26 objc_msgSend + 6 
1 MapKit       0x30ca46a6 -[MKMapView mapViewDidFinishLoadingTiles:] + 46 
2 VectorKit      0x376bbaf4 -[VKTileSource didFinishWithNetwork] + 68 
3 VectorKit      0x376bc196 __32-[VKTileSource performDownload:]_block_invoke126 + 38 
4 GeoServices      0x345b6fdc ___ZNK49-[GEOTileLoaderInternal _loadedTile:forKey:info:]66__49-[GEOTileLoaderInternal _loadedTile:forKey:info:]_block_invoke3$_1clERKN8LoadItem9RequesterE_block_invoke_2 + 52 
5 libdispatch.dylib    0x3a7ddd78 _dispatch_call_block_and_release + 8 
6 libdispatch.dylib    0x3a7ddd64 _dispatch_client_callout + 20 
7 libdispatch.dylib    0x3a7e47bc _dispatch_main_queue_callback_4CF$VARIANT$mp + 264 
8 CoreFoundation     0x2fab881c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 4 
9 CoreFoundation     0x2fab70f0 __CFRunLoopRun + 1296 
10 CoreFoundation     0x2fa21ce2 CFRunLoopRunSpecific + 518 
11 CoreFoundation     0x2fa21ac6 CFRunLoopRunInMode + 102 
12 GraphicsServices    0x3471c27e GSEventRunModal + 134 
13 UIKit       0x322c3a3c UIApplicationMain + 1132 

在崩溃,我们看到MapKit 0x30ca46a6 -[MKMapView mapViewDidFinishLoadingTiles:]

MapKit给出了问题吗?

对于mapkit,下面是我

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.title = @"Location"; 
    // Do any additional setup after loading the view. 
    CLLocationCoordinate2D cords = {29.32511601390379, 48.08847418705136}; 
    MKCoordinateSpan span = {0.008400,0.008400}; 
    region = (MKCoordinateRegion) {cords,span}; 
    mapView.showsUserLocation = YES; 
    [mapView setRegion:region animated:YES]; 
    [mapView setDelegate:self]; 

    DisplayMap *ann = [[DisplayMap alloc] init]; 
    ann.coordinate = region.center; 
    [mapView addAnnotation:ann]; 
} 

而且我没有的dealloc在mapkitviewcontroller。那很好吗?我在问这个错误与内存管理有关。

我的应用程序有5个选项卡。前4个标签只是UIWebView。对于webview,我发现我没有把webview放在dealloc中。以下是我在webview中所做的,

- (void)dealloc { 
    [super dealloc]; 
} 

现在我的xcode上也没有iOS 7。我需要下载,但在这之前想问一下。

注:所有与iOS 6

任何猜测正常使用,为什么我收到此错误?

回答

0

当我把mapView放在dealloc中时,问题就解决了。

在进一步调查中,还注意到我没有为DisplayMap添加标题。

DisplayMap *ann = [[DisplayMap alloc] init]; 
ann.title = @"My Location"; 
+1

你明确否认出来?我有同样的问题,看到在一个Crittercism报告崩溃,但无法自我复制 –

+0

@HenrikHartz:早些时候我有'ann.title = @“”' –

+0

@HenrikHartz你找到原因了吗?我在Crashlytics报告中看到同样的问题,但无法自己重现 – Chris

4

在导航离开页面之前,是否已将地图视图委托设置为零。另外我认为IOS映射存在一些内存管理问题。所以最好在dealloc方法中发布地图。

+0

嗯...我也觉得这样的... –

+0

我在地图视图委托设置为nil,我委托的dealloc方法中解决了这个问题。对我来说这并没有太多意义,因为Apple的MKMapView的实现应该保持对委托的弱引用。但是谁知道呢,也许在iOS 7 MKMapView实现中有一些错误的代码。 – Chris

相关问题