我上传了该应用,并被拒绝说
我们发现您的应用在运行iOS 7的iPad上崩溃,这不符合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];
}
此外,我在mapkitviewcontroller中没有dealloc。那很好吗?我问这个错误与内存管理有关。
我的应用有5个标签。前4个选项卡只是UIWebView。对于webview,我发现我没有把webview放在dealloc中。以下是我在webview中的内容,
- (void)dealloc {
[super dealloc];
}
现在我的xcode上也没有iOS 7。我需要下载它,但想在此之前询问。
注意: All与iOS 6完美配合。
有没有猜到我收到此错误的原因?
答案 0 :(得分:4)
在离开页面之前,已将地图视图委托设置为nil。另外我认为IOS地图存在一些内存管理问题。因此,最好使用dealloc
方法发布地图。
答案 1 :(得分:0)
当我将mapView
放入dealloc时,问题就解决了。
在进一步调查时,还注意到我没有为DisplayMap
添加标题。
DisplayMap *ann = [[DisplayMap alloc] init];
ann.title = @"My Location";