自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 3-2 iOS 多线程 NSThread

NSThread如何用?- (void)nsthreadDemo { //创建方法 //1 动态创建 需要调用start启动线程 NSThread *thread1 = [[NSThread alloc] initWithTarget:self selector:@selector(threadMethod) object:nil]; thread1.name =...

2018-04-08 11:38:24 329

原创 3-1 iOS 多线程 GCD

GCD 如何用?1.串行队列同步执行 dispatch_queue_t queue = dispatch_queue_create("serialQueue", DISPATCH_QUEUE_SERIAL); dispatch_sync(queue, ^{ for (int i = 0; i < 10; i ++) { NSLog(@"%...

2018-04-04 14:12:42 259

原创 2-4 iOS KVC&KVO

KVC概念:KVC,键-值编码,可以使用字符串直接访问对象的属性,而不需要显式调用存取方法。在运行时动态访问和修改属性的值,而不是在编译时确定。OC所有继承NSObject的类型都能使用KVC。怎么用?什么时候用?- (nullable id)valueForKey:(NSString *)key; //直接通过Key来取值- (void)set...

2018-03-30 14:33:15 281

原创 自动绑定框架

    如果你也曾被繁琐的列表,多控件Cell手动赋值,多控件View赋值,取值,上传服务器等所累。可以去看一下我这套自动绑定框架。    列表视图 在controller中直接new一个BaseListView,详细配置见.h,赋一个action(请求路径)以及para(请求参数) cell继承AutoBindCell,控件属性名与服务器字段key名一致,如果要实现动态cell高度,子类cell...

2018-03-30 11:53:42 250

原创 2-3 iOS 分类(Category)& 类扩展(Extension)

     分类(Category):        分类是OC中的一个特有语法,它表示一个指向分类结构体的指针。一般情况下,我们只能添加给分类增加方法,而不能增加实例变量(成员变量)。      分类的格式:@interface 待扩展的类(分类的名称)@end@implementation 待扩展的类(分类的名称)@end      分类的使用场景:        我们知道,给一个A类添...

2018-03-26 16:26:22 424

原创 2-2 iOS 内存管理,栈,堆,BSS段,数据段,代码段,野指针,僵尸对象

内存管理,拆开讲就是对如何将数据存储到内存中,如何释放内存中的数据,什么时候释放。   内存中的六大区域          内存分为5个区域,分别指的是----->栈区/堆区/BSS段/数据段/代码段          栈:存储局部变量,当其作用域执行完毕之后,就会被系统立即收回          堆:存储OC对象,手动申请的字节空间,需要调用free来释放          BSS段:未初...

2018-03-21 16:48:11 1092 1

原创 2-1 面向对象OOP

面向对象的程序设计(OOP,Object Oriented Programming)是一种计算是一种计算机编程范式, 它将对象作为问题空间的基本元素, 利用对象和对象之间的相互作用来设计程序。     什么是面向对象?     对象的概念:即将所有事物都当对象来看待,比如我的手机,他有屏幕尺寸,重量,名字等等属性,他有打电话,发短信等等行为。当然,他的屏幕尺寸也可以当一个对象来看待。     类的...

2018-03-21 15:09:22 190

原创 1-1 版本控制 SVN&GIT

/*     1.SVN ***********************************************     SVN是集中式源代码管理工具          概念:     1)Repository   代码仓库,保存代码的仓库     2)Server   服务器,保存所有版本的代码仓库     3)Client   客户端,只保存当前用户的代码仓库     4)用户名&am...

2018-03-20 11:50:37 219

原创 写在之前

    从事iOS这个行业也有三年多了,从一开始的外包到现在做的远程会诊产品,接触过的项目类型也算不少。但是总感觉对于iOS这门技术缺少点什么,一些基础知识甚至都忘的差不多了。所以我决定,在接下来的三个月时间内。将OC主要的知识点回顾一遍。博客将以知识点的形式更新下去。算是给自己的一个学习动力。...

2018-03-20 10:32:35 177

原创 iOS音视频专栏(二)WebRTC音频模块在iOS上的应用

公司的项目是通过WebRTC的APM(Audio Processing Module)模块进行的声音处理(降噪,增益,回声消除等),通过调用audio_device获取设备音频硬件。整套音频处理都是基于WebRTC来实现的。但是这让我走了很多“路”。包括翻墙下载10个G的源码,编译源码成lib。但是却无法实现创建音频引擎(voiceEngine),创建通道(channel)等。更别提噪音抑

2017-12-08 11:14:44 2543 11

原创 iOS 音视频专栏(一)视频流H264分析以及坑

引言前段时间进新公司,做视频会议,会诊方向的。不采用任何第三方框架,包括推流,拉流,编解码等视频处理,都是自己来编写,除了音频部分要用到webrtc来处理声音降噪,增益等。过程很艰辛,也是踩了无数的坑,总算项目算是整完了。在此,记录一下音视频这块所需要掌握的一些知识点,很多网上能找到的,在这里我就尽量不会太费笔墨。写的不好,轻拍,大家一起进步。1.视频流 H264 分析网上有很多的对裸流H264

2017-08-01 11:52:35 2222 7

原创 iOS XCode8.3.2版本使用CoreData报错

之后就报错:linker command failed with exit code 1(use -v to see invocation)看到这个错误 我第一个反应就是文件.m重名了 但是工程里找了不可能存在 想到有可能XCode8.3自动生成了实体类文件,而不需要再去新建实体类了。故删除原项目中的实体类文件。编译,OK。

2017-05-29 15:06:53 478

转载 iOS 性能优化总结 (多贴总结)

避免对UIView使用透明。(UIView默认是非透明)。原因是透明对性能要求较高,如果在滚动时页面比较复杂,体验上的差异会相对明显。避免过于庞大的xib。(如果不得不使用一个ViewController作为xib,也应该将其其中的子视图拆成小的xib)。需要注意的是,当你加载一个XIB的时候所有内容都被放在了内存里,包括任何图片。如果有一个不会即刻用到的view,你这就是在浪费宝贵的

2017-05-23 11:22:01 1151

原创 IOS 绘制虚线

绘制虚线/** ** lineView: 需要绘制成虚线的view ** lineLength: 虚线的宽度 ** lineSpacing: 虚线的间距 ** lineColor: 虚线的颜色 **/+ (void)drawDashLine:(UIView *)lineView lineLength:(int)lineLength lineSpacing:(int

2017-03-23 18:04:27 467

原创 IOS 高德地图获取用户导航路径

标题最近项目里有一个需求,用户开始导航之后,要将导航的路径传到服务器,在另一个客户端显示所有用户的导航路径。## 思路 ## 要实现这个功能,最关键的一点就是当用户导航之后如何取到路径。笔者是用的高德地图,在这里说说我的实现。见上一篇博客,我们已经初始化了一个导航视图。导航开始之后,会有一个回调方法- (void)driveManagerOnCalculateRouteSuccess:(AM

2016-07-01 11:18:50 1077

原创 IOS 高德地图导航

引言高德地图导航包还是浅显易懂,笔者在这里做点总结,实际操作一遍。 导航分为模拟导航和实时导航两种,两种导航都包括语音提示、停止导航、暂停或继续导航功能。通过模拟导航,用户可预先了解出行路线,直观掌握沿途每一个特别路口的交通状况,让出行更从容。算路成功后就可在导航视图或HUD视图下开始导航了,如下图所示: 1.配置工程 笔者是使用cocoapods自动部署导航SDK,如果更新了cocoa

2016-06-28 16:18:31 2645

原创 IOS 会动的登录界面

引言动画一直是笔者最喜欢的,在现在广大的APP市场中,很多相似的软件拼功能已经无法获得用户群体,要做到让用户喜欢,体验是重中之重。一个好的动画效果,不仅能提升逼格,还能提高用户体验。会动的登录界面先来看看效果吧 是不是感觉挺炫酷的!原型界面我们可以看到原型界面是一张颜色渐变的背景图片,上面添加几个模糊的气泡。作为一名程序员,当然十八般武艺样样精通最好。这个界面笔者是用Sketch软件制作的,类

2016-06-17 17:12:15 1046

原创 IOS 二维码扫码

引言最近公司项目需要自定义一个二维码扫描界面,提前写了个小demo,可以自定义二维码样式和添加按钮,文字等,有详细的注释,代码可直接复制。代码#import "CustomScanView.h"#import <AVFoundation/AVFoundation.h>#define screenBounds [UIScreen mainScreen].bounds@interface Custo

2016-06-16 18:07:17 902

原创 IOS 开发中的一些实用公共方法

1.事件字符串转NSDate 格式:yyyy-MM-dd hh:mm:ss+ (NSDate*)DateFromString:(NSString*)uiDate{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ; [formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss

2016-06-14 15:49:19 1254

原创 runtime实现数据模型,自动绑定数据

引言该篇博客的思路是学习了以前看过的一篇博文,时间有点久,现在已经找不到了。算是借花献佛一把,与大家分享一下如何建立数据模型,并且实现当属性名与字典key值一致时,自动给属性赋值。开始还是先来讲讲思路吧。我们的目的是给模型传入数据,当模型中属性名与字典key一致时,属性的值就为字典key对应的值。要实现这点,最关键的就是如何匹配key与属性名,并且将value赋给属性。 上篇博客中,我们讲过利用r

2016-06-14 14:50:54 736

原创 浅谈Runtime

什么是Runtime?我们都知道OC是一门动态运行时的语言,何为动态语言?那什么又是静态语言呢? 静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求. 动态类型语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。通俗点讲,OC为了表现其动态性

2016-06-14 11:26:15 501

原创 Runtime实现动态关联对象

引言关于笔者对Runtime的理解,将在下一篇博文中与大家分享。该篇博文,笔者将向大家分享一个Runtime实用的技巧,在实际开发中也会经常用到。说明假设你现在需要实用一个系统的类,UIButton,UILabel等,但是你觉得系统的类无法满足你的需求,你将会怎么做?一般我们都会想到继承,确实这个可以实现。但是只是为了增加一个属性,而去继承一个类,未免太麻烦,要是类多了,管理维护也是很头疼的一件

2016-06-13 16:48:41 680

原创 IOS 模仿qq分组那样展开与收起

概述模仿qq分组那样展开与收起的效果,相信大家在项目中总会碰到,今天给大家讲讲实现的思路。不同的人有不同的实现方式,难易程度也会大不一样,我今天给大家讲的,算是一种比较简单快捷的实现方式。内容利用UITableView的section来实现展开与收起效果建立数据模型,与UI结构对应,降低代码耦合度 重用headView## 效果图 ## 实现思路大家看到这样一个效果,

2016-06-13 10:54:00 4812 2

IOS模仿QQ分组的展开与收起

模仿QQ分组的展开与收起

2016-06-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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