iOS常见问题总结(三)

关于导入百度地图SDK出现的问题(一)

1.MKAnnotationView和MKPinAnnotationView的区别

如果想创建以静态图片作为大头针图片的话,可以通过创建MKAnnotationView是实例。如果想使用apple自带的大头针则创建MKPinAnnotationView.

2.Undefined symbols for architecture x86_64

错误原因:一般是指用到的第三方框架不支持64位手机
iOS常见问题总结(三)_第1张图片
将5改为$(ARCHS_STANDARD)_32_BIT

3. Terminating app due to uncaught exception ‘NSInvalidUnarchiveOperationException’,reason ‘Could not instantiate class named MKMapView’

解决办法:如果sotoryboard中用到了地图,必须手动导入框架MapKit.framework.

4.使用百度地图api不显示当前位置的蓝点,如下代码

- (void)viewDidLoad {
    [super viewDidLoad];

    _locService  = [[BMKLocationService alloc] init];
    _locService.delegate = self;
    _mapView = [[BMKMapView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0) {
        // 主动请求权限
        self.mgr = [[CLLocationManager alloc] init];
        self.mgr.delegate = self;
        [self.mgr requestAlwaysAuthorization];
    }
    [self.view addSubview:_mapView];


    [_locService startUserLocationService];
    _mapView.userTrackingMode = BMKUserTrackingModeFollow;//设置定位的状态
    _mapView.showsUserLocation = YES;//显示定位图层
}
/** *用户位置更新后,会调用此函数 *@param userLocation 新的用户位置 */
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation
{
    [_mapView updateLocationData:userLocation];
    if (userLocation != nil) {
        NSLog(@"%f %f", userLocation.location.coordinate.latitude, userLocation.location.coordinate.longitude);
    }
}

5.百度地图BMKMapViewDelegate的-mapView:viewForAnnotation:函数不调用

解决办法:看看mapview的delegate是不是在viewWillAppear里面 如果是的话,viewDidLoad肯定是先于viewWillAppear被叫的,所以不会调用。

你可能感兴趣的:(ios,sdk,百度地图)