自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

止于至善

求诸所愿,皆得满足!

原创 新的blog地址

使用hexo +github搭建了自己的blog,欢迎访问!地址:https://lindreaming.github.io/

2018-10-11 15:04:44 256

原创 HTTP的三次握手和四次挥手

HTTP的三次握手和四次挥手学过网络的都知道,http的传输是基于TCP协议的,建立连接需要三次握手,结束连接需要四次挥手,那么具体过程是什么样子呢? 中间经历哪些状态呢?TCP报文的头结构概念说明:SYN: 同步字段,等待确认;ACK: 确认字段,建立连接后ACK=1;seq: 请求序号;ack: 确认序号,等于SYN发送的 seq+1;FIN:终止字段,FIN=1表示释放一个连接;1.三次握手;连接状态:CLOSED: 表示初始状态;LISEN:服务端的某个SOCKET处于监

2020-05-21 18:27:59 56

原创 iOS 自己封装一个Mutipart网络请求

文章目录什么是Mutipart网络请求什么条件下需要自己拼装mutipart网络请求基于AFNetwoking的mutipart网络请求代码示例代码示例#iOS 自己拼装Multipart网络请求什么是Mutipart网络请求mutipart网络请求是一种post网络请求,主要用来上传大文件,如图片、音视频数据等;什么条件下需要自己拼装mutipart网络请求一般的项目中我们的网络请求都...

2020-03-11 11:56:12 47

原创 UICollectionview使用装饰decorationView

自定collectionview的装饰视图先来看一下效果图图中树的部分就是通过装饰来实现的;要想实现图中树杈部分的UI,如果通过传统的方式很难实现,只能写死一部分UI来实现这样的效果,但是通过collectionview的decorationView就可以轻松的实现这种效果;先上代码步骤3:[self registerClass:[ShelfView class] forDecora...

2019-10-31 21:00:51 205

原创 使用Audio Queue播放pcm流

#使用Audio Queue播放pcm流因为项目的原因,需要实现播放pcm流的播放器,对于iOS传统的播放器AvPlayer等音频播放器无法满足需求,这个时候需要使用更加底层播放器,Audio quue;介绍audio queue推荐官方文档:About Audio Queues使用音频队列需要先数显几个概念:Audio Queue: 音频队列是调度音频队列的主体,负责调度整个播放过程的逻...

2019-10-30 20:30:14 156

原创 音视频直播总结

采集 -> 处理 -> 编码 -> 封装 -> 推流 -> 分发采集: 视频 YUV音频:PCM处理:磨皮,美白,会涉及到人脸识别技术和皮肤识别技术;编码:压缩编码,根据前后帧的特点可以实现压缩;连续几个帧放在一起就形成了组GOP,将该组分为I/B/P,I表示为关键帧,B表示为双向参考帧,P表示为向前参考帧,如果没有I帧,B,P帧也是没法播放的,因为B,...

2019-06-12 14:55:01 5136 3

原创 PostMan设置全局变量

给postMan 设置全局变量1.通过{{}} 双大括号可以实现对变量的引用; 2.需要在请求的Test里面设置好要设置的全局变量:let json = JSON.parse(responseBody);//声明一个变量json,将JSON返回Body里面的值解析并给变量json tests["a"] = responseBody.has("0");//设置一个断言 pm.glob...

2018-08-23 11:14:14 1179

原创 iOS开发项目总结

webview开发过程中踩到的坑;1.webview关闭时关闭音频声音的问题; 一开始采取的时候采取@"about:blank"的方式关闭,发现在出现webview跳转后goback回来的时候加载之前的空白页,所以这个方法有局限性; 2.采用与JS交互的方法; 在页面关闭之前,直接调用JS关闭视频播放的方法,实现音频播放的关闭;音频播放控制的问题1.音频循环播放的问题; 通过监...

2018-07-17 20:02:31 623

原创 Tableview自适应展示

设置UITableView自动计算高度设置tableview的样式- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 0.01;}- (CGFloat)tableView:(UITableView *)tabl...

2018-07-02 16:34:17 466 1

原创 iOS webview的截屏功能

iOS webview实现截屏的功能 项目的应用场景实现网页的截屏功能用于分享到微信图片,类似于分享证书等,代码如下- (UIImage *)createImageWithView:(UIView *)view{ CGSize s = view.bounds.size; //第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示...

2018-06-27 10:24:40 920

原创 iPhone无线调试

无线调试通过无线调试可以避免频繁的插拔线可以节省手机的电池,毕竟手机电池一直连接电脑是伤害电池的,对于用自己手机调试的同学还是值得注意的那么怎么进行调试呢?color:orange> 先通过有线的形式让手机和mac连接选择show as run destination 这个时候拔掉数据线选择左侧的设备,右键选择connect via IP address输入手机的ip...

2018-06-07 18:07:58 631

原创 Xode执行脚本打包

Xcode命令行和脚本关联执行打包 执行以下命令即可 sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

2018-06-07 18:03:56 181

原创 iOS Native录音+web交互

主要流程:1.创建音频路径,位置放在document文件夹下; 2.通过AVAudioseesion来设置录音时的背景声音,需要设置背景声音为静音,这样方便录音; 3.设置录音时候需要的一些参数,包含通道,采样率,音频质量,音频格式等; 4.控制录音;包含开始录音和结束录音的动作; 5.将录音生成的文件转化成Mp3的文件,Mp3转化相当于将之前的音频再次做一次采样,生成的Mp3文件会更...

2018-05-17 16:53:42 932

原创 LaunchScreen.storyboard 启动页设置图片不显示 启动页白屏

问题描述:修改完launchScreen的启动图之后发现加载还是之前的图片? 问题解决思路:以为是缓存的问题,通过重启Xcode,删除掉APP重新安装,cleanXcode 发现 It don’t work; 那怎么办呢? 通过在网上搜索找到了解决方法: 1.修改启动图的图片名称; 2.将图片的目录放在文件的目录下面(如果放在Assets.xcassets中需要移动)。评估:这个应该...

2018-02-28 18:04:15 10084

原创 iOS中检测当前设备的旋转方向(关闭屏幕旋转)

首先添加CoreMotion.frameWork 框架在代码中配置基本的信息#import <CoreMotion/CoreMotion.h>// 创始化状态,添加Queue来检测状态- (void)startMotionManager{ if (_cmotionManager == nil) { _cmotionManager = [[CMMotionManager al

2017-12-19 21:41:33 2082

原创 iOS中webview加载pdf文件出现黑屏的问题

项目开发的过程中,当加载完成一个pdf文件的过程后,常常会出现黑屏的情况; 原因是webview调用-webViewDidFinishLoad: 后负责渲染pdf文件的UIWebPDFView还没有加载完成,所有想除掉黑色背景可以在-(void)viewDidLayoutSubviews 中或者- (void)webView:(WKWebView *)webView didFinishNavig

2017-11-30 15:53:27 2170

转载 makeObjectsPerformSelector 方法的用法

NSArray 类定义的方法makeObjectsPerformSelector:@select(aMethod)简介:让数组中的每个元素 都调用 aMethod makeObjectsPerformSelector:@select(aMethod)      withObject:oneObject简介:让数组中的每个元素 都调用 aMethod 并把 with

2017-10-16 10:40:41 235

原创 命令行转义

命令行中空格的转义:使用斜杠’\’+空格 = 空格,实现转义。

2017-10-09 10:04:51 2618

原创 UILable通过drawTextInRect修改文字间距

重写UIlable的drawTextInRect Method,然后设置UIEdgeInsets。- (void)drawTextInRect:(CGRect)rect{ UIEdgeInsets insets = {0, 5, 0, 15}; [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];}

2017-08-18 14:34:44 1163

原创 iOS学习资料

WWDC视频: https://developer.apple.com/videos/raywenderlich: https://www.raywenderlich.com/category/ios

2017-08-16 16:57:21 391

原创 自定义UICollectionViewlayout

在iOS开发中,UICollectionView的作用主要的作用是用来展示格子样式的数据,相比于TableView,collectionView的布局更加的灵活,它可以通过自定义UICollectionViewLayout,来实现我们需要的UI效果。在iOS开发中,UICollectionView的作用主要的作用是用来展示格子样式的数据,相比于TableView,collectionView的布局更

2017-08-14 18:10:11 388

原创 iOS应用内跳转到系统设置页面

在iOS开发中,有时会有跳转系统设置界面的需求,例如提示用户打开蓝牙或者WIFI,提醒用户打开推送或者位置权限等。设置跳转有三种方式,每一种的使用场景都不同。 并且你在跳转到系统中自己应用下面设置的时候,你的应用要提前至少申请了某一个权限,如通知,定位等。否则,会引起崩溃。方式一:prefs:root=某项服务方式二:prefs:root=bundleID方式三: UIApplicationOpen

2017-08-03 12:24:27 456

翻译 Alamofire的使用教程

环境:Alamofire 4, Xcode 8.2, iOS 10, and Swift 3. Alamofire是一个基于HTTP的网络请求库,适用于iOS和OSX,针对apple的基本网络请求库作了封装,简化网络请求的复杂逻辑。 Alamofire提供了request/response方法,JSON参数形式,序列化功能,以及authentication等许多特性。在本篇文章中,你可以学到通过

2017-07-27 16:25:17 1790

原创 Swift加载带导航条的WebView

Webview是iOS开发中常用的控件,加载webview的时候常常需要一段等待时间,特别是网络条件差的时候,这时候加载一个带导航的webview能很好的提高用户体验,下面的例子演示使用WKWebview自定义一个导航条加载一个webView,WKWebview是iOS8时推出的,相比以前的UIWebview控制的更加精细,功能也更多,支持更多的HTML5特性,支持动态加载JS代码,感兴趣的可以看这

2017-07-25 18:17:32 933

原创 ScrolView的Autolayout约束

在使用autoLayout的时候,针对一般的view只需要添加四个位置信息便可以确定一个view的位置了;但是因为scrolView本身控件的特殊性,我们设置的约束只是控制了scrollView的Frame。如果scrollView想要滑动,我们还要设置scrollView的ContentSize,在使用代码的时候的时候我们可以通过代码来实现,非常的简单;- (void)viewDidLoad {

2017-07-24 17:03:35 519

原创 NSTimer的使用(精简)

简述:NSTimer是iOS系统的计时控件,下面介绍NSTimer的使用,简单详细: 1. Timer的开启:+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)interval repeats:(BOOL)repeats block:(void (^)(NSTimer *timer))block 创建一个timer对象,

2017-07-14 14:57:17 225

转载 UML类图与类的关系详解

在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实例理解这些关系。 基本概念类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要

2017-06-15 16:54:39 370

翻译 设计模式——算法封装

模板方法模板方法模式:定义一个操作中算法的架构,而将一些步骤延迟到子类中。模板方法使子类可以重定义算法的某些特定步骤而不改变该算法的结构;使用场景需要一次性实现算法的不变部分,可将可变的行为留给子类来实现;子类的共同行为应该被提取出来放在公共类中,以避免代码重复。 现有代码的差别应该被分离为新的操作,然后用一个调用这些新操作的模版方法来替代这些不同的代码; 3.需要控制子类的扩展。可以定义一

2017-05-25 18:36:35 1581

翻译 设计模式——行为扩展

访问者访问者模式:表示一个作用于某对象结构中各元素的操作。它让我们可以在不改变各元素的前提下定义作用于这些元素的新操作;使用场景1.一个复杂的对象结构包含很多其它对象,它们有不同的接口,但是相对这些对象实施一些依赖于其具体类型的操作; 2.需要对一个组合结构中的对象进行许多不相关的操作,但是不想让这些操作“污染”这些对象的类。 3.定义复杂结构的类很少做修改,但经常需要向其添加新的操作;装饰装饰

2017-05-25 18:35:48 437

翻译 设计模式 ——抽象集合

组合组合模式:将对象组合成树形结构以表示“整体-部分”的层次结构。组合使得用户对单个对象和组合对象的使用具有一致性。使用场景想获得对象抽象的树形表示(部分-整体层次结构);想让客户端统一处理组合结构中的所有对象;迭代器迭代器:提供一种方法顺序访问一个聚合对象中各个元素,而不需要暴露该对象的内部表示;使用场景1.需要访问组合对象的内容,而又不暴露内部表示; 2.需要通过多种方式遍历组合对象;

2017-05-25 18:34:57 252

翻译 设计模式 ——接口适配

适配器类适配器 类适配器(adapter)是通过继承来适配两个接口;通过继承一个协议,和一个实际类(adaptee),通过重载中的协议方法,调用超类(adaptee)中的方法(specificRequest)发送【super specificRequest】方法; 只有当是协议而不是类时,类适配器才能用OC来实现;对象适配器 对象适配器(adapter)继承一个协议,与类适配器不同的是ad

2017-05-25 18:33:57 439

原创 svn is already locked解决方案

在出错文件夹下,找到Action -> cleanup working copy locks on.即可

2017-05-25 09:29:20 393

原创 OC与Swift文件的混编

1. OC调用Swift类;a. 在工程的 Build Settings 中把 defines module 设为 YES. b.引入swift头文件,格式“projectName-filename.swift”(这个文件是系统创建的);2.Swift调用OC类;Swift代码引用OC,需依靠 Objective-C bridging header 将相关文件暴露给Swift。在Objecti

2017-05-23 10:33:31 404

原创 LLDB的简单使用

iOS5后苹果公司在xcode中集成了LLDB取代了之前的GDB.有很多快捷键,支持别名设置,并且用户可以通过Python进行扩展。 学习资料:(a).查看apple developer视频,407 WWDC 2013: Debugging with Xcode. 413 WWDC 2013: Advanced Debugging with LLDB. (b.) 查看apple develope

2017-05-10 16:43:11 213

原创 Apple Mach-O Linker Error-iOS

项目开发的过程中添加新的文件时常常会出现这样的错误“Apple Mach-O Linker Error”,“clang: error: linker command failed with exit code 1 (use -v to see invocation)”这样的错误提示。 这是因为错误的引用导致的,解决的方法有以下方式: 1. 在工作左边导航栏Target–>Build Phase

2017-05-05 11:20:27 1666

原创 iOS使用TestFlight进行Beta测试

Apple 提供TestFlight的方式帮助开发人员实现快捷的测试流程,现阶段已经集成到itunesConnect中;TestFlight分为两种类型: 1. 内部测试:开发人员可最多邀请25人参与测试,不需要提交给apple审核; 2. 外部测试:开发人员可最多邀请2000人参与测试,需要提交给apple审核,审核周期一般为几个小时; testFlight使用好处: 可以更快的的提供

2017-04-27 13:54:42 548

原创 AVPlayerViewController支持横屏设置

针对项目中出现视频播放需求,简单的视频播放功能,可以使用AVPlayerViewController,在iOS9后废弃了之前的MPMoviePlayer,现在统一使用AVKit下的AVPlayerViewController; 作为第一次使用AVPlayerViewController,总结一些遇到的坑,分享出去; 1.首先是全屏播放问题,由于界面只支持portrait模式,可是看视频是需要La

2016-10-24 17:48:28 7565

原创 Xcode8打包APP上传到APPStore遇到的问题

1.ERROR ITMS-90096: “Your binary is not optimized for iPhone 5 - New iPhone apps and app updates submitted must support the 4-inch display… 这个问题的提示是说在打包APP的时候没有添加iPhone 5 的4寸启动图,在网上找了许多资料,大多数是关于启动图设置的

2016-10-10 17:40:58 3143 1

原创 NSURLProtocol的使用

在实际工作的项目中,有时会需要在webview的请求中添加认证,比如iOS中UIWebview添加headers认证请求;一般的情况下我们可以在请求的时候直接添加headers,创建 NSMutableURLRequest 然后添加header [request setValue:@"header" forHTTPHeaderField: @"key"],这样可以最简单的添加header,用户在第

2016-07-15 16:27:26 511

转载 iOS启动屏后再加个闪屏的方法

自定义图片加载,延时时间,以及动画收回时间。

2016-05-11 12:00:14 5594

提示
确定要删除当前文章?
取消 删除