2013-09-27 143 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

相關問題