ios开发

iOS开发拓展篇—CoreLocation定位服务

混江龙づ霸主 提交于 2020-03-07 07:40:58
iOS开发拓展篇—CoreLocation定位服务 一、简单说明 1.CLLocationManager CLLocationManager的常用操作和属性 开始用户定位- (void)startUpdatingLocation; 停止用户定位- (void) stopUpdatingLocation; 说明:当调用了startUpdatingLocation方法后,就开始不断地定位用户的位置,中途会频繁地调用代理的下面方法   - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations; 每隔多少米定位一次   @property(assign, nonatomic) CLLocationDistance distanceFilter; 定位精确度(越精确就越耗电)   @property(assign, nonatomic) CLLocationAccuracy desiredAccuracy; 2.CLLocation CLLocation用来表示某个位置的地理信息,比如经纬度、海拔等等 (1)经纬度   @property(readonly, nonatomic) CLLocationCoordinate2D coordinate; (2)海拔   

iOS 开发 申请定位

*爱你&永不变心* 提交于 2020-03-07 07:40:18
在iOS8以后,苹果已经强制开发者在请求定位服务时获得用户的授权,此外iOS状态栏中还有指示图标,提示用户当前应用是否正在使用定位服务。另外在iOS8以后,苹果进一步改善了定位服务,让开发者请求定位服务时需要向用户提供更多的透明。此外,iOS8后还支持让应用开发者调用全新的“访问监控”功能,当用户允许后应用才能获得更多的定位数据。 iOS8以前使用CoreLocation定位 1、首先定义一个全局的变量用来记录CLLocationManager对象,引入 CoreLocation.framework 使用 #import <CoreLocation/CoreLocation.h> @property (nonatomic, strong) CLLocationManager *locationManager; 2、初始化CLLocationManager并开始定位 self.locationManager = [[CLLocationManager alloc]init]; self.locationManager.delegate = self; self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; self.locationManager.distanceFilter = 10; [self

iOS定位开发之CoreLocation

ⅰ亾dé卋堺 提交于 2020-03-07 07:35:42
有时候我们并不需要查看地图,而仅仅需要自己的当前位置就可以,这时候就没有必要去使用MapKit可,直接使用定位服务就好了 苹果提供了CoreLocation框架来做定位功能 首先要想项目中导入CoreLocation框架 定位服务开启之前最好查看一下定位服务是否可用,有可能用户已经拒绝或者用户手机定位模块有问题,无法定位 定位服务是由CLLocationManager来管理的 定位成功等信息也是通过代理发送给对象的,另外定位中经常需要用到地理位置的解码和反解码(其实就是经纬度和地名之间的转换) 下面的范例代码有基本的使用方式和注意点 #import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewController () <CLLocationManagerDelegate> { // 定位服务管理器 CLLocationManager *_locationManager; // 使用地理编码器 CLGeocoder *_geocoder; } @end @implementation ViewController /** 1. 在开发LBS类的应用时,获取用户定位信息之前,一定要判断一下定位服务是否允许 + locationServicesEnabled 2. 开启定位

iOS定位服务与地图开发(1)---获取经纬度

这一生的挚爱 提交于 2020-03-07 07:35:08
定位服务是通过GPS等方式查找定位自己的位置的,再通过地图标注出来。 在iOS中定位服务和地图开发是使用两套API分别完成的。 1、定位服务: iOS系统提供3种不同定位途径: 1>WiFi定位:通过查询一个WiFi路由器的地理位置信息,iPhone、iPod Touch、iPad都可以采用。 2>蜂窝式移动电话基站定位:通过移动运营商基站定位 3>GPS卫星定位:通过3~4颗GPS卫星位置定位,最为准确,但是耗电量大 iOS不像Android系统在定位服务编程时可以指定采用哪种途径进行定位。iOS的API把底层这些细节屏蔽掉了,开发人员和用户并不知道现在设备采用哪种方式进行定位,iOS系统会根据设备的情况和周围环境,采用一套最佳的解决方案。具体是:如果能够GPS信息,那么设备优先采用GPS定位,否则采用WiFi或蜂窝基站定位,在WiFi和蜂窝基站之间优先使用WiFi,如果无法连接到WiFi才使用蜂窝基站定位。 1.1、定位服务编程 在iOS 6之后,定位服务主要使用CoreLocaation框架,定位时主要使用CLLocationManager、CLLocationManagerDelegate和CCLocation。 CLLocationManager类:定位服务管理类,它能够使我们获得设备的 位置信息 和 高度信息 ,也可以监控设备进入某个区域,还可以帮助我们获得设备的

在iOS开发中如何播放视频

ε祈祈猫儿з 提交于 2020-03-07 05:53:42
技术博客 http://www.cnblogs.com/ChenYilong/ 新浪微博 http://weibo.com/luohanchenyilong 如何播放视频 • iOS 提供了叫做 MPMoviePlayerController 、 MPMoviePlayerViewController 的两个类 , 可以用来轻松播放视频 Ø YouTobe 就是用 MPMoviePlayerController 实现的 Ø MPMoviePlayerViewController 只能全屏播放视频 • 上述两个类都定义在了 MediaPlayer 框架中 MPMoviePlayerController 支持的格式 • MPMoviePlayerController 继承自 NSObject , 它内部有个 view 用来展示视频内容 , 添加其他控制器的 view 上面即可显示 • MPMoviePlayerController 可以播放的视频格式有以下两种 : Ø H.264 Ø M PEG - 4 Part 2 video • 支持的文件拓展名为 : avi,mkv,mov,m4v,mp4 等 • 可以到苹果官网 : http://support.apple.com/kb/HT1425 下载一些用来测试的 视频文件 , 文件都比较小 技术博客 http://www

iOS开发之AFNetworking 3.0.4使用

一个人想着一个人 提交于 2020-03-06 10:58:08
博客迁移到简书一来,一直没有时间来写博客了,以前的也没有整理,这个算是简书上的第一个博客吧!以后有时间还是得把以前的迁移过来,毕竟都是心血啊,也有转载的很多大神们的技术文章,舍不得丢弃呀。。。 昨天使用Cocoapods导入AFN做POST的时候,导入的最新版的3.0.4,突然发现找不到AFHTTPRequestOperationManager了。。。上github上一看,发现没有这个了。刚开始以为是cocoapods没有给我导进去,因为是小demo,就想自己写一个网络请求的,发现也没有这NSURLConnection了,被弃用了,突然意识到,这个就是AFHTTPRequestOperationManager找不到的原因了,它是基于NSURLConnection封装的!!于是找了一下,现在都用的是NSURLSession了,AFN中用的是AFHTTPSessionManager了~~ 特地记录下来,以便遇到这个的朋友们看看! ps:如果想用以前的话,cocoapods 就不要用最新的版本了,2.6的上面有。 GET请求 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:URL parameters:nil progress:^(NSProgress * _Nonnull

iOS开发之KVC/KVO区别使用

强颜欢笑 提交于 2020-03-06 10:34:50
一,概述 KVO, 即: Key-Value Observing ,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。 二,使用方法 系统框架已经支持KVO,所以程序员在使用的时候非常简单。 1. 注册,指定被观察者的属性, 2. 实现回调方法 3. 移除观察 三,实例: 假设一个场景,股票的价格显示在当前屏幕上,当股票价格更改的时候,实时显示更新其价格。 1.定义DataModel, [cpp] view plain copy @interface StockData : NSObject { NSString * stockName; float price; } @end @implementation StockData @end 2.定义此model为Controller的属性,实例化它,监听它的属性,并显示在当前的View里边 [cpp] view plain copy - ( void )viewDidLoad { [super viewDidLoad]; stockForKVO = [[StockData alloc] init]; [stockForKVO setValue:@ "searph" forKey:@ "stockName" ];

iOS开发总结-Xcode常见错误

时间秒杀一切 提交于 2020-03-05 15:22:59
这篇文章中收录了Xcode出现的各种错误,并对错误给出了正确的解决方案,以便帮助遇到困难的朋友。 文章由作者刘小壮维护并持续更新,有新的问题并且文章中没有收录的,可以在下面评论区中提出,我会收录在文章中供大家参考。如果有问题不能解决的,也可以在下方评论区中提出,我会尽力帮助解决,并且将解决方案添加到文章中供其他人参考。 "file/file.h" file not found 如果遇到这种类型的问题报错,可以分为三部来解决,由简到复杂一步一步来,直到解决问题位置。 1. 点击Xcode -> Project -> Clean清除缓存或者使用⌘ + ⇧ + k快捷键来清除。 2. 点击Xcode -> Window -> Projects 清除Derived Data的缓存,在清除缓存之前先彻底退出Xcode,然后直接删除缓存文件夹。 3. 再Build Settings -> Header Search Paths 添加路径,$(SRCROOT)/项目名称/文件路径。 如果上面这三种方法都没有解决问题,就要考虑一下文件是否存在或者导入方式是否有错误了。例如: # include<> 和 # include"" 、 # import<> 和 # import"" 的导入方式是否有错误。 ld: -pie can only be used when targeting iOS 4.2

iOS 开发-Certificate、App ID和Provisioning Profile之间的关系

这一生的挚爱 提交于 2020-03-05 11:21:24
模拟器调试的时候有的时候不能检验出程序在真实手机上的差别,如果需要进行真机测试或者发布应用到App Store上去的时候, 公司如果没有开发过App,你可以从头开始弄,大部分都是后来接手的,那么当我们进入 https://developer.apple.com/account/ios/profile/profileList.action 网站的时候我们可能会有一些迷茫,会看到如下图片" 可以很容易的发现这样的几个东西。 Devices是设备,不需要解释,每个开发者账号可以关联100台设备,可以通过xcode直接添加你的设备,Certificate、App ID和Provisioning Profile不是那么好理解。 Certificate(证书) 证书是你有权利开发的凭证,是开发者的一种标识,相当于身份证,一个开发者账号只有一套。一套含两个,Development和Distribution(也就是Production)。 其中Development证书提供开发者在电脑上真机调试的权限,可以制作多个副本分发到多台电脑。 Distribution证书给开发者提供发布ios程序的权限,也就是说有了这个,你就有权力发布程序到App Store去了。只有一个,不能制作副本分发到多台电脑。 下面是证书的分类信息:(括号内为证书有效期) Development App Development

iOS 。开发之指纹识别功能

别来无恙 提交于 2020-03-05 06:53:35
// 头文件导入 #import <LocalAuthentication/LocalAuthentication.h> //在iPhone5s的时候,苹果推出了指纹解锁。但是在ios8.0的时候苹果才推出相关的接口。所以, /** * 第一步,验证版本 */ if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) { return nil; } /** * 第二步,创建LAContext */ LAContext *ctx = [[LAContext alloc] init]; NSError *error; //判断设备是否支持指纹识别 if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { NSLog(@"请按手指"); //输入指纹 [ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"提示文字" reply:^(BOOL success, NSError * _Nullable error) { if (success) { NSLog(@"验证成功");