-[UIView setRegion:animated:]: 无法识别的选择器发送到实例
Posted
技术标签:
【中文标题】-[UIView setRegion:animated:]: 无法识别的选择器发送到实例【英文标题】:-[UIView setRegion:animated:]: unrecognized selector sent to instance 【发布时间】:2012-12-05 08:32:28 【问题描述】:我是 Objective C 的初学者。在导航控制器中选择 TableRow 后,我正在设置 Mapview。我收到了终止应用程序的错误。
-[UIView setRegion:animated:]: unrecognized selector sent to instance 0x806b2c0
这是我对 Mapview 的 viewWillAppeer
- (void)viewWillAppear:(BOOL)animated
CLLocationCoordinate2D zoomLocation;
zoomLocation.latitude = 39.281516;
zoomLocation.longitude= -76.580806;
if (CLLocationCoordinate2DIsValid(location))
MKCoordinateRegion mapRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 0.5*METERS_PER_MILE, 0.5*METERS_PER_MILE);
[_mapView setRegion:mapRegion animated:YES];
else
NSLog(@"Invalid coordinates");
此导入 mapkit 和 corelocation 的头文件并具有此属性。
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
头文件包括 mapkit 和 coreelocation,使这个属性变得强大也没有改变任何东西。
【问题讨论】:
您的 _mapView 对象在方法调用时已损坏。 你能确保 IBoutlet 已连接吗? 我想我忘了在 mapView 上进行分配 什么?? “忘记分配”? - 这是一个 IBoutlet。你是明确分配的吗? - 它应该已经链接到 XIB 的 Mapview。 糟糕!它只是抑制了错误,所以我认为这可能是问题所在。我有一个故事板和排水沟显示我连接了我的 IBOutlet。仍然出现同样的错误 【参考方案1】:发生这种情况是因为我之前在我的 LocateItemViewController(具有地图视图的控制器)上连接了一个名为“mapView”的插座,并且从未从“Connections Inspector”中删除它。
请参阅 Outlets 部分下名为“view”的灰色插座,我有一个类似的名为 mapView 的插座
【讨论】:
这正是我的问题。谢谢!!【参考方案2】:变量_mapView
被修改为UIView
。该函数属于MKMapView
,而不是UIView
。
参考:http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MKMapView_Class/MKMapView/MKMapView.html
【讨论】:
我对@987654327@的函数调用和对@property (weak, nonatomic) IBOutlet MKMapView *mapView;
的属性调用
在问题代码中尝试NSLog(@"%@", _mapView);
。我想知道它设置为什么值。
带有NSLog(@"%@",self.mapView);
的控制台截图:snag.gy/fC1wd.jpg
真的是UIView
!你最好找到并替换_mapView
,看看你给它分配了什么。
控制器绝对是 UIView 的子类,但我的属性定义明确指出它是 MKMapView。我没有自定义设置器。以上是关于-[UIView setRegion:animated:]: 无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章