没有已知的选择器'setRegion:animated:'的类方法

时间:2013-11-08 22:03:27

标签: ios objective-c dictionary

我在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

3 个答案:

答案 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];