将Google Map SDK添加到iOS6时发送到类的错误无​​法识别的选择器

时间:2013-02-07 10:35:11

标签: map sdk ios6 google-maps-sdk-ios

这是一个单一的视图应用程序,我按照链接给出的说明进行操作       https://developers.google.com/maps/documentation/ios/start 用于将谷歌地图SDK添加到iOS6。 错误是:

unrecognized selector sent to class 0xe2b0
2013-02-07 15:21:29.788 mapApp[2061:12e03] *** Terminating app due to uncaught exception     
'NSInvalidArgumentException', reason: '+[GMSCameraPosition    
cameraWithLatitude:longitude:zoom:]: unrecognized selector sent to class 0xe2b0'

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
   // Override point for customization after application launch.
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    self.window.rootViewController = self.viewController;

   //initializing google map api key
   [GMSServices provideAPIKey:@"google's api key goes here"];

   [self.window makeKeyAndVisible];
   return YES;

}

ViewController.m

#import "ViewController.h"
#import <GoogleMaps/GoogleMaps.h>
@interface ViewController ()

@end

@implementation ViewController
{
    GMSMapView *mapView;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

   GMSCameraPosition *cam = [GMSCameraPosition cameraWithLatitude:13.0245231 
                                                        longitude:77.64072579999993                
                                                             zoom:6];

   mapView = [GMSMapView mapWithFrame:CGRectZero camera:cam];
   mapView.myLocationEnabled = YES;

   GMSMarkerOptions *options = [[GMSMarkerOptions alloc]init ];
   options.position = CLLocationCoordinate2DMake(13.025738,77.637809);
   options.title = @"ensign";
   options.snippet = @"kalyan nagar";

   [mapView addMarkerWithOptions:options];

}

的main.m

#import <UIKit/UIKit.h>
#import <GoogleMaps/GoogleMaps.h>
int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv,nil, NSStringFromClass([AppDelegate class]));
    }
}

在跟踪错误时,它显示在return的{​​{1}}语句中,该语句来自执行第一行后的方法main.m

-viewDidLoad

它逃脱了其余部分。

3 个答案:

答案 0 :(得分:25)

您是否在the instructions的第7步中将-ObjC添加到其他链接标记?

- 额外信息编辑:请注意-ObjC区分大小写。

答案 1 :(得分:8)

我遇到了同样的问题。确保将-ObjC标志添加到“目标”的“构建设置”而不是“项目”。

P.S。在这两个地方添加它也不会破坏它。

答案 2 :(得分:0)

Google Doc说 选择项目而不是特定目标,然后打开“构建设置”选项卡。 在Other Linker Flags部分中,添加-ObjC。如果看不到这些设置,请将“构建设置”栏中的过滤器从“基本”更改为“全部”。 有时这是错误的.... 我不得不将链接器标志添加到目标,以使其工作。这应该有助于某人