我在xcode中尝试了一些东西,我正在使用这个代码来实现我的MapView。
选择器
没有已知的类方法'setRegion:animated:'
我制作了三个带有3个.h和.m文件的View Controller。
我的错是什么?
的.m
#import "myPlacesAllTime.h"
#import <MapKit/MapKit.h>
@interface myPlacesAllTime ()
@end
@implementation myPlacesAllTime
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
MKCoordinateRegion startRegion = { {0.0,0.0}, {0.0,0.0} };
startRegion.center.latitude = 35.88905;
startRegion.center .longitude = -17.605591;
startRegion.span.latitudeDelta = 0.1;
startRegion.span.longitudeDelta = 0.1;
[myPlacesAllTime setRegion:startRegion animated: NO];
}
·H
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@interface myPlacesAllTime : UIViewController <MKMapViewDelegate>{
__weak IBOutlet MKMapView *myPlacesAllTime;
}
@end
答案 0 :(得分:3)
您为类选择了相同的名称myPlacesAllTime
该类的实例变量。
要解决此问题,请重命名该类,例如至MyPlacesController
或类似。
请注意,约定是让
类名以大写字母开头。
答案 1 :(得分:0)
我认为你的问题可能是一个命名问题。您创建的类名称与您拥有的MKMapView实例相同。我会遵循惯例并用上限命名你的课程,但要解决当前的问题,请尝试使用
[self.myPlacesAllTime setRegion:startRegion animated:NO];
看看它是否有不同的结果。您必须使您的实例成为该类的属性,如下面的评论中所述,我在原始答案中遗漏了这些属性。
答案 2 :(得分:0)
如果您打算在班级使用setRegion:animated:
,请确保您已定义了这样的方法:
+ (void)setRegion:(OBJ_Type)iType animated:(OBJ_Type)iAnimated {
如果你打算在对象级别使用setRegion:animated:
,那么请确保你已经定义了这样的方法:
- (void)setRegion:(OBJ_Type)iType animated:(OBJ_Type)iAnimated {
在这种情况下,你需要像这样调用这个方法:
[self setRegion:PARAM animated:PARAM];