我正在尝试将Google Maps API安装到iOS7的应用中。在遵循Google的指南和视频后,我最终收到了以下错误:[GMSMapView animateToCameraPosition:]: unrecognized selector sent to instance 0x10b98e6c0
我正在使用Storyboard,并尝试将此地图显示在同一viewController中的TableView上方。
在这个应用程序中,我使用Parse,它将数据提取到我的TableView,并且工作正常。
我尝试使用我在StackOverflow上找到的一些建议,但问题仍然存在:
Cannot put a google maps GMSMapView in a subview of main main view?
How to set the frame for mapview - in google GMSMap for iOS6
显然这个问题与这个方法有关:
mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
当我删除它时,错误就会消失。
我的TestViewController编码如下(没有表格或任何内容,但仍无效):
// TesteViewController.m
//
#import "TesteViewController.h"
#import <GoogleMaps/GoogleMaps.h>
#import "AppDelegate.h"
@interface TesteViewController ()
@end
@implementation TesteViewController{
GMSMapView *mapView_;
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
// Create a GMSCameraPosition that tells the map to display the
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:6];
mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView_.myLocationEnabled = YES;
self.view = mapView_;
// Creates a marker in the center of the map.
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
marker.title = @"Sydney";
marker.snippet = @"Australia";
marker.map = mapView_;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
我还按照建议导入了所有框架,并确实将-ObjC
放入我的otherLinkerFlags
,但没有成功。
除此之外,我测试了我在一个新的空白项目中使用的过程,它工作正常,但是,当我尝试添加空白viewController
作为原始项目的测试时,它确实不行。
我做的另一项测试是为此空白viewController
添加一个视图,并尝试在我上面发布的StackOverflow参考文献中说明的内容。
有没有人对正在发生的事情有任何建议?
可能与Parse的框架或其他一些库有冲突?
我没有使用-ObjC
而是尝试了-force_load $(PROJECT_DIR)/GoogleMaps.framework/GoogleMaps
并且错误消失了,它要求我允许我当前的位置,但是屏幕没有加载。
答案 0 :(得分:2)
您需要做的是在您的&#34;项目&#34;中添加-objC标志。构建设置,而不是&#34;目标&#34;的构建设置。
正如以下Google部分文档中提到的
**" Choose your project, rather than a specific target, and open the
Build Settings tab. In the Other Linker Flags section, add -ObjC. If
these settings are not visible, change the filter in the Build
Settings bar from Basic to All. "**
通过这种方式,我能够解决Google Maps animateToCameraPosition问题。