标签: mapkit

卸载视图时,MapKit /位置管理器会崩溃应用程序

我有一个错误,当我点击导航栏上的后退键并且卸载了具有MapKit(mapView)并使用位置管理器的视图时,我的应用程序崩溃了"EXC_BAD_ACCESS".试了好几天来修复这个bug,最后找到了解决这个问题的人的修复:

将此代码添加到您的dealloc

- (void)dealloc {
    mapView.delegate = nil;
    locationManager.delegate = nil;

    [mapView release];
    [locationManager release];
}
Run Code Online (Sandbox Code Playgroud)

crash mapkit cllocationmanager

7
推荐指数
1
解决办法
1523
查看次数

MapKit异常:无法删除关键路径"title"的观察者

我遇到了很多这样的崩溃事件.在我的代码中,我没有在我的MKAnnotation对象上做任何可以解释此异常的KVO.所以对我来说,它看起来像是一个iOS错误.

有没有其他人遇到类似的崩溃?

*** Terminating app due to uncaught exception 'NSRangeException', reason: 'Cannot remove an observer  for the key path "title" from  because it is not registered as an observer.'

Thread 0 Crashed:
0   libSystem.B.dylib                   0x000792d4 __kill + 8
1   libSystem.B.dylib                   0x000792bd raise + 17
2   WhereTo                             0x000a430d uncaught_exception_handler (PLCrashReporter.m:137)
3   CoreFoundation                      0x000a0adf __handleUncaughtException + 239
4   libobjc.A.dylib                     0x00006593 _objc_terminate + 103
5   libstdc++.6.dylib                   0x00042df9 __cxxabiv1::__terminate(void (*)()) + 53
6   libstdc++.6.dylib                   0x00042e4d std::terminate() + 17
7   libstdc++.6.dylib                   0x00042f1d __cxa_throw + 85 …
Run Code Online (Sandbox Code Playgroud)

iphone mapkit mkmapview ios

7
推荐指数
1
解决办法
4189
查看次数

一旦地图加载,显示带标题(注释)的Pin

我正在开发我的第一个应用程序,在其中我只是尝试按下按钮单击显示带引脚的地图(以及此引脚位置上的标题).我能够加载mapview并让它显示我想要的坐标.但是当我试图显示引脚和注释时,我遇到了问题.不知道在哪里编码以及如何使注释显示引脚.我搜索并看过很多教程,但是大多数都显示了不同的mapview样式,并且在用户选择上显示引脚,我想在地图加载时显示引脚.

这是我必须显示正在工作的地图但没有引脚显示或注释的代码:

FirstLocateViewController.m代码:

#import "FirstLocateViewController.h"

@implementation FirstLocateViewController

@synthesize dismissViewButton;

-(IBAction)dismissView:(id)sender {
[self dismissModalViewControllerAnimated:YES];
}

- (void)viewDidLoad {
[super viewDidLoad];
CGRect frame = CGRectMake(0,0, 320,420);
mapView = [[MKMapView alloc] initWithFrame:frame];
mapView.mapType = MKMapTypeStandard;
CLLocationCoordinate2D coord = {latitude: 12.3456, longitude: -7.890};
MKCoordinateSpan span = {latitudeDelta: 0.05, longitudeDelta: 0.05};
MKCoordinateRegion region = {coord, span};
[mapView setRegion:region];
[self.view addSubview:mapView];
Run Code Online (Sandbox Code Playgroud)

}


FirstLocateViewController.h代码:

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <MapKit/MKAnnotation.h>


@interface FirstLocateViewController : UIViewController <MKMapViewDelegate> {
UIButton *dismissViewButton;
MKMapView *mapView;
}

@property (nonatomic, retain) IBOutlet UIButton *dismissViewButton; …
Run Code Online (Sandbox Code Playgroud)

iphone xcode annotations mapkit

7
推荐指数
1
解决办法
2万
查看次数

如何显示没有街道名称的MKMapView?

我需要显示没有街道名称的地图.是否有可能使用MKMapView?如果没有,是否有支持此功能的iO的不同地图API?

谢谢,尼姆罗德

geolocation mapkit mkmapview ios

7
推荐指数
1
解决办法
4186
查看次数

iOS 7中的转弯导航

我正在开发一个导航应用程序来显示转弯驾驶路线.在iOS 6中,我们必须将数据传递到ios地图应用程序,但我想在不离开应用程序的情况下显示它.

Apple已经在iOS 7中引入了新的方向API,所以现在在iOS 7中可以在应用程序中显示Turn By Turn Navigation(在MKMapView中)?

iphone mapkit mkmapview ios ios7

7
推荐指数
1
解决办法
2813
查看次数

寻找MKOverlayPathRenderer示例

我想弄清楚如何使用新MKOverlayPathRenderer类.

在我的应用程序中,我以前MKOverlayPathView在使用iOS 6 SDK构建时使用过,但它似乎不适用于iOS 7 SDK.

所以我试图将我的应用程序MKOverlayPathView移至 MKOverlayPathRenderer,但到目前为止没有成功.

MKPolylineRenderer工作正常,但MKOverlayPathRenderer没有.代码被调用,但在地图上没有绘制叠加.

有人有一个有效的例子MKOverlayPathRenderer吗?

mapkit mkmapview ios mkoverlay ios7

7
推荐指数
1
解决办法
3073
查看次数

MKUserLocation是可选择的,错误地拦截来自自定义MKAnnotationViews的触摸

我在我的iOS应用程序中有一个普通的地图,其中"显示用户位置"已启用 - 这意味着我在地图上有我的正常蓝点,显示我的位置和准确度信息.标注在代码中被禁用.

但我也有定制的MKAnnotationViews,它们在地图上绘制,所有这些都有自定义标注.

这工作正常,但问题是当我的位置在MKAnnotationView的位置时,蓝点(MKUserLocation)拦截触摸,因此MKAnnotationView不会被触及.

如何禁用蓝点上的用户交互,以便MKAnnotationViews而不是蓝点拦截触摸?

这就是我到目前为止所做的事情:

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation;
{
    if (annotation == self.mapView.userLocation)
    {
        [self.mapView viewForAnnotation:annotation].canShowCallout = NO;
        return [self.mapView viewForAnnotation:annotation];
    } else {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c mapkit mkannotationview ios mkuserlocation

7
推荐指数
1
解决办法
1165
查看次数

自定义地图视图在swift中的initWithCoder中崩溃

我有一个UITableViewCell,它有一个地图视图作为子视图.创建了一个Custom类,它处理所有操作,如添加注释,委托等,并将其命名为CustomeMap.swift.

之后,我改变了地图视图类的名称,CustomeMap小区厦门国际银行,在应用程序崩溃,有时initWithCoder的方法CustomeMap,因为我还没有实现这个方法.后来我添加了如下方法:

import UIKit
import MapKit


protocol CustomeMapDelegate{
    func annotationClickEvent(info:NSDictionary?)
}

class CustomeMap: MKMapView,MKMapViewDelegate,CLLocationManagerDelegate {

    var locationManager:CLLocationManager?
    var delegate1:CustomeMapDelegate?
    var tap:UITapGestureRecognizer?

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func awakeFromNib()
    {
        if CLLocationManager.authorizationStatus() == CLAuthorizationStatus.AuthorizedAlways {
            self.showsUserLocation = true;
        }
        else
        {
            locationManager = CLLocationManager()
            locationManager?.delegate = self;
            if locationManager!.respondsToSelector("requestAlwaysAuthorization")
            {
                locationManager?.requestAlwaysAuthorization()
            }
        }
        self.delegate = self
        self.userInteractionEnabled = true
        tap = UITapGestureRecognizer(target: self, action: "calloutAction:") …
Run Code Online (Sandbox Code Playgroud)

exc-bad-access mapkit mkmapview swift ios8

7
推荐指数
1
解决办法
860
查看次数

在MKMapView中的折线中绘制方向箭头

我想用箭头方向绘制折线.据我所知,Mapkit中尚未包含这些内容.

我试图创建一个自定义的MKOverlayPathRenderer并覆盖drawMapRect但我对如何执行此操作有点困惑.

有没有办法实现我的目标?

这是我正在尝试做的一个例子

在此输入图像描述

mapkit mkmapview mkoverlay mkoverlaypathrenderer

7
推荐指数
0
解决办法
509
查看次数

位置许可检查和授权

我希望我的程序在地图上显示用户位置.它起初工作然后随机停止所以我添加下面的代码试图解决它但我遇到了问题.提前致谢!

    override func viewDidLoad()
    {
        super.viewDidLoad()
        self.locationManager.delegate = self
        self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
        if CLLocationManager.locationServicesEnabled()
        {

            let status: CLAuthorizationStatus = CLLocationManager.authorizationStatus()
            if status == CLAuthorizationStatus.NotDetermined
            {
                locationManager.requestAlwaysAuthorization()
            }
            } else {

                print("locationServices disenabled")
            }
            locationManager.startUpdatingLocation()
            self.locationManager.startUpdatingLocation()
            self.mapView.showsUserLocation = true
            mapView.delegate = self
            centerMapOnLocation(initialLocation)
            addBoundry()
    }
Run Code Online (Sandbox Code Playgroud)

permissions location mapkit ios swift

7
推荐指数
3
解决办法
2万
查看次数