用Swift重写公司OC项目(Day2--swift如何调用OC类库,swift开发之百度地图的集成以及如何关闭ATS)

接上一片博文,我们已经创建好了桥接文件.那么如何调用?

在项目最开始的时候,我写了这个项目使用cocoapod管理依赖库,在这里,还是多记录一下吧.

1 在你的已经安装好cocoapod的电脑上,打开终端,输入pod search baidumapapi ,得到的结果如下:

剪头中的就是我们需要的,然后在我们的项目中的podfile中把pod ‘BaiduMapAPI‘ ‘~>2.8.1‘加进去并且保存

2 加好了类库当然需要安装到项目中,所以输入pod install,等待安装完毕

3 重新打开项目,发现项目结构变成如下模样:

然后打开我们的桥接文件,引用百度地图的头文件

command + B 试试是否编译成功,成功就可进行下一步了.

4 本来项目开始应该进入的是首页,但是上面既然写了如何使用百度地图API,那么就直接写在这里,后面写到使用百度地图的页面就不写了..

代码如下:

① 首先在appdelegate里添加红色框框里的代码,里面剪头部分需要你到百度官网拿项目的bundle identify来生成一个key,不要按照我这个写啊

②  然后在控制器里代码如下:

  

import UIKit

class ViewController: UIViewController ,BMKMapViewDelegate ,BMKLocationServiceDelegate{

var mapView: BMKMapView!

var locService: BMKLocationService!

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

mapView = BMKMapView(frame: self.view.frame)  //创建地图的view

self.view = mapView   //让百度地图的view成为控制器的view

//设置定位精准度

BMKLocationService.setLocationDesiredAccuracy(kCLLocationAccuracyBest)

//指定最小距离更新,单位是米

BMKLocationService.setLocationDistanceFilter(10)

//初始化定位服务

locService = BMKLocationService()

//启动定位服务

locService .startUserLocationService()

mapView.showsUserLocation = false

//设置位置跟踪态

mapView.userTrackingMode = BMKUserTrackingModeNone

//显示定位图层

mapView.showsUserLocation = true

//设置是否支持多点(缩放)

mapView .zoomEnabled = true

//手机比例尺中可以显示的级别  最高为19

mapView .zoomLevel = 19

}

//定位代理

//用户方向更改后

func didUpdateUserHeading(userLocation: BMKUserLocation!) {

mapView.updateLocationData(userLocation)

}

//位置更新后

func didUpdateBMKUserLocation(userLocation: BMKUserLocation!) {

mapView.updateLocationData(userLocation)

//移动定位的位置到屏幕中间

mapView .setCenterCoordinate(userLocation.location.coordinate, animated: true)

}

override func viewWillAppear(animated: Bool) {

mapView.viewWillAppear()

mapView.delegate = self   //在控制器view将要显示的时候设置mapview以及定位的Locservice的代理为控制器

locService.delegate = self

}

override func viewWillDisappear(animated: Bool) {

mapView.viewWillDisappear()

mapView.delegate = nil    //在控制器view将要消失的时候设置mapview以及定位的locservice的代理为nil ,具体原因去查看百度地图的api,里面有说明

locService.delegate = nil

}

5 代码写完之后,当你运行程序可能发现无法进行定位,那么这个有可能是你的plist文件少加入了一些东西,一起发上来;

  

  这里二选一的,我选择的一直在后台运行,也可以选择另外一个属性,使用时候运行,至于key我不太记得了.自己在百度地图论坛可以找到.

这里顺带说一下,在iOS9之后,苹果开启了ATS,这个服务其实是需要https支撑的,估计苹果的目的也就是反向逼迫开发者们增强自己的APP安全,但是有时候公司是不想花钱去买那个HTTPS的证书,毕竟国人都喜欢免费的,有http可以用,为什么要一年花一两千去买个证书呢?所以这里有一个方法关闭ATS,也是在plist文件里添加.如下;

设置这个之后,一些AFN之类的第三方类库又可以正常使用了.

今天内容完毕..明天继续...

时间: 2024-10-31 01:40:40

用Swift重写公司OC项目(Day2--swift如何调用OC类库,swift开发之百度地图的集成以及如何关闭ATS)的相关文章

用Swift重写公司OC项目(Day2)--创建OC与Swift的桥接文件,进而调用OC类库

昨天把项目中的图标以及启动转场图片弄好了,那么今天,我们可以开始慢慢进入到程序的编写当中了. 由于swift较新,所以类库还不够完善,但是不用担心,苹果早就出了解决方案,那就是使用桥接文件,通过桥接文件,系统会把类库中的OC代码转换成swift语言,这样用起来其实没什么障碍. 那么如此创建桥接文件以及如何调用类库的一些方法呢?请看以下截图.. 如此创建一个OC的.m文件,当你点击了next输入文件名,然后选择存放位置之后create,系统会弹出如下选项: 看到这里,当然要选择后者了,我们的目的就

用Swift重写公司OC项目(Day1)--程序的AppIcon与LaunchImage如何设置

公司之前的APP呢经过了两次重写,都是使用OC由本人独立开发的,不过这些东西我都不好意思说是自己写的,真心的一个字:丑!!! 客观原因来说主要是公司要的特别急,而且注重的是功能而非效果,公司的美工之前也没做过APP之类的工作;但是从主观方面来说还是对自己的要求有些低了,所以,这两天思考许久,打算在公司的事情不多的闲暇点的时间学习写Swift,顺带把之前的项目再次重写一下. 闲话不说了,先创建一个swift的项目 创建完毕之后,退出程序,因为我们这里使用cocoapod来管理项目,至于cocoap

swift 音乐播放器项目-《lxy的杰伦情歌》开发实战演练

最近准备将项目转化为OC与swift混合开发,试着写一个swift音乐播放器的demo,体会到了swift相对OC的优势所在,废话不多说,先上效果图: ps:身为杰伦的铁粉,demo的主题必须跟杰伦有关,哈哈!而且自我感觉我有转型UI的天赋,有木有? 一.导入OC文件 创建好swift项目之后,导入OC工具类文件,Xcode会自动生成桥接文件 打开这个文件,在开头导入OC工具类的头文件,就可以调用OC工具类了 // // Use this file to import your target's

iOS将简单的百度地图SDK集成到项目中

最近在玩百度地图API,期间遇到很多问题,只能说明我蠢.现在一一记录下来,以后用到可以回来复习一下. 下载iOS的SDK,下载地址为:http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download 新建工程,获取 Bundle identifier,比如:com.winson.test.cstest  注意灰色的cstest,是要手写进去的(very important): 回到百度地图API首页,如果你还不是开发

swift 集成使用最新版百度地图_v2.10.2(一)

目前在开发中使用百度地图的APP越来越多了,我在网上找的集成百度地图的例子不是很多,于是我就将我集成百度地图的过程记录了下来: 一.前提:安装CocoaPods sudo gem install cocoapods 如果安装成功,会有一个提示 Successfully installed cocoaPods 二.使用CocoaPods导入地图SDK 在当前工程文件(.xcodeproj)所在文件夹下,打开terminal 1.创建Podfile: touch Podfile 2.编辑Podfil

决定以后再做公司的项目的时候,能够用其他语言的绝对不用delphi

1.delphi7的IDE真的很不友好 2.delphi7的控件有的有问题 3.delphi7居然不支持结构体的泛型存储 4.网上的解决文档超少,一些小bug,就要折腾半天 5.pascal语法太过结构化,不喜欢 作为公司的项目来说,一定要便于维护,开发时间尽量少的同时,可维护性其实更重要.delphi7我实在是看不到这些.

OC项目中使用Swift

OC项目中使用Swift 本文版权归作者所有,如需转载请联系孟祥月 CSDN博客:http://blog.csdn.net/mengxiangyue 独立博客:http://mengxiangyue.com 最近公司的项目开始计划使用Swift,由于原先的工程都是使用OC编写的,不可能一下全部转换成Swift,所以采用OC与Swift混编的方式是最好的选择.这篇文章只是一个简单的介绍,并没有太高深的知识. 我新建了一个演示的OC工程,当然你可以使用你已经存在的OC的工程.如果我们想要在OC工程中

关于OC和Swift使用GIT创建项目

1.先进入码云,点击自己的头像 -> ,2.里面有一个SSH公钥,点击 ,3.之后在终端输入 ssh-keygen -t rsa -C “[email protected]”,注意:”” 要用英文,不然终端上不会显示,也就是自己的邮箱,4.继续在终端输入 一直按回车键直到 再输入cat ~/.ssh/id_rsa.pub,在终端上会显示: ,这就是公钥,在输入框输入即可(可以验证一下是否获取成功<按照提示的步骤来) 此时就可以创建项目了,创建swift或者OC项目 获取项目的SSH, 打开终端

Swift基础--调用第三方OC项目

第一步:创建和配置Bridging-Header.h Swift与OC进行混编,首先要有一个.h文件,这里使用Bridging-Header.h然后设置项目的Build Settings--Swift Compiler--Objective-C Bridging Header内容为DemoApp/Bridging-Header.h,这个与Bridging-Header.h位置有关,从项目的根目录开始在Objective-C Bridging Header选项里面写入Bridging-Header