首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MKMapView错误

MKMapView错误
EN

Stack Overflow用户
提问于 2011-08-04 07:15:01
回答 2查看 358关注 0票数 0

我猜error太强了,因为它完全按照我想要的方式工作,但我收到了一条令人担忧的警告消息。我正在向TabBarController添加一个UIViewController,所有我想要做的就是显示地图视图,然后当用户单击该选项卡时放大用户。我构建了xib,我所做的唯一编辑工作就是将一个MKMapView拖到上面并连接到插座和代理。除此之外,下面是所有的实现代码:

代码语言:javascript
复制
- (void)viewDidLoad
{

    [super viewDidLoad];

    [mapView setShowsUserLocation:YES];

}

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {

    CLLocationCoordinate2D loc = [userLocation coordinate];
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250);
    [mapView setRegion:region animated:YES];

}

问题是,我在最后一行收到一个黄色警报错误,显示“"mapView”的局部声明隐藏了实例变量。“

然而,当我运行这个应用程序时,它似乎工作正常。这个错误可能指的是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-04 07:19:54

这是因为您将MKMapView对象声明为mapView。看一下方法声明:

- (void)mapView:(MKMapView *)mapView

它使用与您自己的变量相同的名称。这就是编译器似乎会遇到问题的地方。现在我自己也遇到过这种情况,我的解决方案是更改我的变量名(例如,您可以使用worldView )。

我想你也可以用self来解决这个问题。就像在其他语言中一样,你可以使用this.variableName,我想你可以做self.variableName来表明这个变量是‘你的’。如果这说得通的话?

当我声明我自己的方法时,我通常这样做:

代码语言:javascript
复制
 - (void)feedDog:(Dog *)aDog;

然后我的变量将被命名为Dog,以避免混淆。

这就是我所做的。如果任何人对此有任何补充,请随时提出。我对此还是个新手,但现在我确实遇到过几次这个错误。

票数 1
EN

Stack Overflow用户

发布于 2011-08-04 07:21:22

代码语言:javascript
复制
[self.mapView setRegion:region animated:YES];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6934434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档