百度地图官网的API开发教程链接:点击打开链接

我按照他的教程做的总出现Apple
Mach-O linker command failed with exit code 1
的错误,于是只好自己上网搜了。

下面说说自己的搭建环境的方法吧   :我错误的原因是引入静态库的时候路径错误导致的

1.下载链接点击打开链接

2。解压后如下:

3.把以上三个inc  libs  mapapi.bundle文件复制粘贴到项目根目录下

点击Xcode中项目名。原则add projects to"XXX" 把inc文件夹、mapapi.bundle文件和libs/Release-iphoneos文件夹中的libbaidumapapi.a添加到项目中。

4 几乎所有的第三方地图sdk都是依赖于apple自有的几个framework,所以这一步需要我们导入:CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework。导入方法如下:

5.

引入静态库文件

1).在XCode的Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags中添加-ObjC

2).设置静态库的链接路径,在XCode的Project -> Edit Active Target -> Build -> Search Path -> Library Search Paths中添加您的静态库目录,$(SRCROOT)/libs/Release$(EFFECTIVE_PLATFORM_NAME)

Library Search Paths中这一个就够了把其他的删除

注:静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即将XCode的Project -> Edit Active Target -> Build -> GCC4.2 - Language -> Compile Sources As设置为"Objective-C++"

6.

选中工程,target,切换到Build Setting标签,定位到other link flag,

输入:-all_load

7.剩下的就只有代码工作了,由于需要key的验证,所以我们先需要使用BMKMapManager类,配置申请到的key,以得到授权。选中AppDelegate.h

[plain] view
plain
copy

  1. #import "BMapKit.h" //导入BMapKit.h
  2. @interface AppDelegate : UIResponder <UIApplicationDelegate>{
  3. BMKMapManager* _mapManager; //实例化
  4. }

选中AppDelegate.m,修改成.mm,(注:静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm))

【注意:如果没有mm,运行会大量报错的】

在AppDelegate.mm中的didFinishLaunchingWithOptions,加入如下代码:

[plain] view
plain
copy

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  2. {
  3. // 要使用百度地图,请先启动BaiduMapManager
  4. _mapManager = [[BMKMapManager alloc]init];
  5. // 如果要关注网络及授权验证事件,请设定generalDelegate参数
  6. BOOL ret = [_mapManager start:@"你申请的ak" generalDelegate:nil];
  7. if (!ret) {
  8. NSLog(@"manager start failed!");
  9. }
  10. self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
  11. // Override point for customization after application launch.
  12. self.viewController = [[[ZYViewController alloc] initWithNibName:@"ZYViewController" bundle:nil] autorelease];
  13. self.window.rootViewController = self.viewController;
  14. [self.window makeKeyAndVisible];
  15. return YES;
  16. }

8 在需要显示地图的viewcontroller.m中加入如下代码:

[plain] view
plain
copy

  1. #import "ViewController.h"
  2. #import "BMKMapView.h"
  3. @interface ViewController ()
  4. @end
  5. @implementation ViewController
  6. - (void)viewDidLoad
  7. {
  8. [super viewDidLoad];
  9. BMKMapView* mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 0, 320, 460)];
  10. self.view = mapView;
  11. }

导入BMKMapView.h后,实例化BMKMapView类。

自2.0.0起,BMKMapView新增viewWillAppear、viewWillDisappear方法来控制BMKMapView的生命周期,并且在一个时刻只能有一个BMKMapView接受回调消息,因此在使用BMKMapView的viewController中需要在viewWillAppear、viewWillDisappear方法中调用BMKMapView的对应的方法,并处理delegate,代码如下:

  1. (void)viewWillAppear:(BOOL)animated
  2. {
  3. [_mapView viewWillAppear];
  4. _mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放
  5. }
  6. -(void)viewWillDisappear:(BOOL)animated
  7. {
  8. [_mapView viewWillDisappear];
  9. _mapView.delegate = nil; // 不用时,置nil
  10. }

编译,运行,效果如下图所示:

IOS7学习之路十(百度地图API环境搭建)的更多相关文章

  1. android菜鸟学习笔记30----Android使用百度地图API(一)准备工作及在应用中显示地图

    1.准备工作: 百度地图API是免费开放的,但是需要申请API Key: 1)先注册一个百度开发者帐号 2)进入百度开放服务平台http://developer.baidu.com/ 3)进入LBS云 ...

  2. android菜鸟学习笔记31----Android使用百度地图API(二)获取地理位置及地图控制器的简单使用

    1.获取当前地理位置: Android中提供了一个LocationManager的类,用于管理地理位置.不能通过构造函数获取该类的实例,而是通过Context的getSystemService(): ...

  3. Python学习之路 (一)开发环境搭建

    前言 python3应该是Python的趋势所在,当然目前争议也比较大,这篇随笔的主要目的是记录在centos6.7下搭建python3环境的过程 以及碰到的问题和解决过程. 另外,如果本机安装了py ...

  4. Linux学习总结(十)—— Java开发环境搭建:JDK+Maven

    Java开发环境最基础的两个开源软件是JDK和Maven. JDK 到Oracle官网下载相对应的源码包,这里我选择的是:Linux x64系统的jdk-8u131-linux-x64.tar.gz. ...

  5. [工具向]__申请,下载,使用百度地图api

    前言 api即应用程序接口,在我们的日常开发中,我们不仅可以在开源代码仓库(,github,码云)中获得很大的帮助,在日常开发中占重要地位的另一个东西就是api,我们可以使用众多的第三方编写的优秀的a ...

  6. 百度地图API和高德地图API资料集锦

    [高德地图API]从零开始学高德JS API(五)路线规划——驾车|公交|步行   [高德地图API]从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自 ...

  7. 【百度地图API】如何制作公交线路的搜索?如331路

    原文:[百度地图API]如何制作公交线路的搜索?如331路 摘要: 从A点到B点的公交导航大家都知道怎么做了,那么单独查询331路公交车的公交路线,如何制作呢?我们一起来学习一下~ --------- ...

  8. 百度地图API的学习

    我们可以进入百度API的网站学习百度地图API:http://dev.baidu.com/wiki/map/index.php,看完这些你应该基本上会掌握了,还有一些显示地图中一些很神奇的效果,需要一 ...

  9. Java web与web gis学习笔记(二)——百度地图API调用

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

随机推荐

  1. Matlab图像处理系列4———傅立叶变换和反变换的图像

    注意:这一系列实验的图像处理程序,使用Matlab实现最重要的图像处理算法 1.Fourier兑换 (1)频域增强 除了在空间域内能够加工处理图像以外,我们还能够将图像变换到其它空间后进行处理.这些方 ...

  2. krpano音量控制(我们已经转移到krpano中国网站 krpano360.com)

    需求: 实现音量控制,这是官网的样例, 本文已经转移 到 krpano中文网 p=148">http://krpano360.com/? p=148 很多其它教程关注微信公众号 krp ...

  3. Write the code.Change the world.---WWDC2014

  4. 最新HTML BroadcastChannel API引荐

    HTML BroadcastChannel API 当前浏览器中只有Firefox38唯一能支持BroadcastChannel API(在编写本文的时间点),而Firefox38官方宣称要到2015 ...

  5. JS实现倒计时网页自动跳转(如404页面经常使用到的)

    在web前端设计中,我们经常会遇到需要实现页面倒计时跳转的功能,例如在404页面中也会经常使用到此功能,那么如何实现呢,其实实现方法很简单,实现代码如下:<title>JS倒计时网页自动跳 ...

  6. Java获取.properties配置文件某一项value根据key值

    public static String getProperty(String key){ InputStream in = PropertiesUtils.class.getResourceAsSt ...

  7. windows安装MySQL

    1)双击MySQL安装文件mysql-essential-5.0.82-win32.msi.进入欢迎页面. 单击Nextbutton.进入到安装类型页面. 2)在安装类型页面中的第一项是典型安装,第二 ...

  8. elasticsearch集群搭建实例

    elasticsearch集群搭建实例 下个月又开始搞搜索了,几个月没动这块还好没有落下. 晚上在自己虚拟机上搭建了一个简易搜索集群,分享一下. 操作系统环境: Red Hat 4.8.2-16 el ...

  9. 《Visual Studio Magazine》2013年读者选择奖—界面框架类

    好消息!2013 Visual Studio Magazine读者选择奖已经正式揭晓了!据了解,截至今年此奖项已经评选了21次,非常值得.NET开发人员信赖和参考.此次评选共有400多个产品角逐28个 ...

  10. html5 canvas+js实现ps钢笔抠图

    html5 canvas+js实现ps钢笔抠图 1. 项目要求需要用js实现photoshop中钢笔抠图功能,就用了近三四天的时间去解决它,最终还是基本上把他实现了. 做的过程中走了不少弯路,最终一同 ...