2010-10-10 76 views
0

我从数据库创建注释。但是当我点击注释来显示泡泡应用程序崩溃。但是,当我硬编码坐标并在地图上创建地标时,气泡会成功弹出。下面是我从数据库获取并加载注释的代码。 (无效)mapView:(MKMapView *)imnMapView didAddAnnotationViews:(NSArray *)views;(imgMapView *)imnMapView didAddAnnotationViews:(NSArray *)views; {应用程序在单击注释泡泡时崩溃

BOOL *regionSet=FALSE; 


       while(sqlite3_step(compiledStatement) == SQLITE_ROW) 
       { 
        CLLocationCoordinate2D userCoods1; 
        NSString *lat = [NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement, 3)]; 
        NSString *longg = [NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement, 4)]; 
        float fLat = [lat floatValue]; 
        float fLong = [longg floatValue]; 


    userCoods1.latitude = (CLLocationDegrees)fLat; 

    userCoods1.longitude = (CLLocationDegrees)fLong; 

        if(regionSet == FALSE) 
        { 
         MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userCoods1,400000,500000); 
         [mapView setRegion:region animated:YES]; 
         regionSet=TRUE; 
        } 

        NSString *siteName = [NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement, 1)]; 
        NSString *siteAddress = [NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement, 2)]; 


        ParkPlaceMark *placemark=[[ParkPlaceMark alloc] initWithCoordinate1:userCoods1 title:siteName subtitle:siteAddress atm:@"ATM"]; 
        pDescription = @"ATM"; 

        [mapView addAnnotation:placemark]; 
        [placemark release]; 

       } 

      }    

      sqlite3_finalize(compiledStatement); 

     } 

}

,当我只是改变硬编码userCoords和创建三个不同的地标气泡弹出和工作正常。请帮我解决这个问题。提前致谢。

回答

0

为什么不将纬度和经度值保存为数据库中的小数或浮点数?转换它更容易。

你可以记录使用NSLog的值和lat和longg吗?它们是否被转换并存储在正确的地方?

NSLog(@"String - Latitude: %@ Longitude: %@", lat, longg); 
NSLog(@"Float - Latitude: %f Longitude: %f", fLat, fLong); 
+0

它对拉特长没问题。注释出现在正确的地方。唯一的问题是当我点击注释时,应用程序崩溃与Exec_Bad_Access。 – Amarpreet 2010-10-11 00:13:29

+0

您确定注释的标题和副标题设置正确吗?触摸它们时弹出的气泡或应用程序在此之前崩溃了吗? – Jeroen 2010-10-11 00:18:33

+0

是的,我确定标题和副标题设置正确。当我点击泡泡时,应用程序崩溃。应用程序在泡泡弹出之前崩溃 – Amarpreet 2010-10-11 00:23:38