- 博客(18)
- 收藏
- 关注
原创 工厂设计模式
工厂设计模式的特点是创建和管理同一类协议族的功能类。在实际项目中可以应用于登陆,验证等业务模块。比如登陆模块,登陆方式有密码登陆,短信登陆,人脸/指纹登录,手势登录,声纹登录,OCR生物识别登录等等。若要是写在业务层,随便一点小改动都改的要死,就算写成工具也会在业务层写上一堆的逻辑判断+登录方式的初始化及其逻辑调用,可以说不易拓展,切维护成本高,代码量也极大。这个时候工厂模式就体现出了其价值,其一,通过工厂来创建管理其登录方式,每种登陆方式的具体实现,完全写在其对应协议的实现类中,只要你的协
2021-01-25 16:52:23
237
原创 iOS 多线程 NSOperation
iOS开发当中,并发处理可能大家已经用惯了GCD的方式,今天我想聊一下NSOperation,因为相对来说,对于队列的操作相对灵活一些,但对于一般的业务发开来说,两种方式都差不多。但我还是更倾向于NSOperation的依赖操作。 比如说在上传多张照片的时候,我们用多线程技术进行处理,可能常用手段就是线程组加信号量,但我觉得还是通过NSOperation的依赖相对简单些,可读性也更好一些。第一步:创建操作任务第二步:添加依赖第三步:将操作添加到队列中执行...
2020-12-28 17:28:13
163
原创 tableView性能优化及加载大量高清图片优化内存
tableview是iOS客户端常用控件,对于电商类及新闻展示类的app来说,提高页面流畅度是很有必要的。那么我今天就来提个方案具体思路就是判断内存中是否已经有图片,有就从内存中取,没有就下载,这样可以降低用户流量量费判断当前tableview的滑动状态和滑动动画如果tableview处于滑动状态和有滑动动画状态就不进行下载图片,显示占位图片,当不在处于滑动再下载图片,这样就可以让界面更流畅,也可...
2018-06-30 11:11:21
3079
原创 C 语言对于存储区域及指针的概念总结
存储区域: 全局变量分配在静态去,局部变量和形参存放在栈区,手动管理内存的在堆区,常量存放在常量区。指针及指针变量: 一块存储单元对应的一个地址,指针就是地址,这个地址指向这个存储单元,存放存储单元的地址或指针的变量叫做指针变量,指针变量的值,就是这个地址或指针,指针变量可以为空,指针变量相减可去获取对应的存储单元长度,相加则无意义。
2017-11-23 10:06:37
823
原创 环信 单聊 群聊集成
闲着没事,用了两天的时间集成了一下环信,git 地址:https://gitee.com/zhangxiny/HuanXin.git环信 API 总体来说写的很清晰,集成中遇到的坑就是在添加群成员后,通过获取群所有成员的 api,只有群主的是获取全部成员,其他成员通过这个 api 是获取不到自己的最后我连着调用两次才可以都获取到, EMError *error = ni
2017-11-16 11:25:54
1668
原创 GCD的基础概念
前些天因为一个并发线程的的bug和同事讨论了下GCD,发现他们都会用,但是说到具体原理和细节,发现他们并不清楚,所以普及一下基础概念。我们先要了解两个东西,一个是队列,一个是线程池dispatch_async(, )异步 dispatch_sync(, )同步第一个参数 就是要从线程池取出的线程第二个参数
2017-11-05 14:12:15
260
原创 进程,主线程,异步线程,多线程和runloop的作用和关系
用一个形象的比喻来形容进程,主线程,异步线程,多线程和runloop的作用和关系一个人吃饭的业务场景:(就是相当于一个进程)角色1:嘴 (第1个黑色箭头,代表主线程)角色2:左手拿勺子(第2个黑色箭头,代表子线程1)角色3:右手拿筷子(第3个黑色箭头,代表子线程2)角色4:锅包肉,地三鲜,鱼香肉丝,西红柿鸡蛋汤,米饭 (各种任务);请开始你的表演: 现在开始吃饭,嘴
2017-11-04 15:56:10
713
1
原创 runtime 创建动态类及常用方法的介绍
今天简单的介绍下 runtime创建动态类及常用方法的介绍开辟一个类的内存空间 Class myClass =objc_allocateClassPair([selfclass], newName.UTF8String,0);第一个参数:继承于哪个父类第二个参数:类的名字注册这个类objc_registerClassPair(myClass);给这个
2017-10-30 09:35:23
293
原创 runtime 方法交换
Method class_getClassMethod(Class cls, SEL name);第一个参数:获取该方法的类第二个参数:方法声明返回值:method实例Method method1 = class_getClassMethod([MyViewController class],@selector(run));
2017-10-29 22:06:24
268
原创 runtime 创建数据模型
objc_property_t * class_copyPropertyList(Class cls, unsigned int *outCount);//苹果文档获取类所有属性的接口Class cls //要获取属性的类unsigned int *outCount //一个指向该属性数组的一个计数指针objc_property_t* //返回一个属性指针数组具体实现#import
2017-10-29 21:15:26
378
原创 工厂模式和策略模式的区别
工厂设计模式,用于创建复杂对象,管理多个不同功能接口 ,策略模式只是将同一功能的不同实现抽离出来,不需要管理对象@protocol xxx NSObject>-(idMap>)getMap;mapview功能-(idLocation>)getLocation;定位功能@end//实现工厂协议获取对应的对象-(idMap>)getMap
2017-10-20 22:10:18
230
原创 iOS 推送服务
今天想梳理一下APNS,理解原理的人,看苹果推送api觉得十分清晰,可是不理解的人看api基本没什么卵用,那么我写一下原理,然后你们在去对这苹果api 捋顺一下。 远程推送是由客户端服务器和苹果服务器来完成的,跟客户端没有什么太多的关系。因为当用户的苹果设备开通连网的时候,就已经与苹果的服务器进行了长链接,这就已经完成一半了,当我们想给客户推送信息,就用我们的服务器给苹果服务器推送消息
2017-02-05 15:20:55
281
原创 iOS 真机证书描述文件配置逻辑
今天同事的真机不能测试了,一通搞,搞了好久也没搞好,交流的时候我发现他的逻辑就是混乱的,我分分钟就帮他弄好了,只要你的逻辑清晰,这个很简单的。 下面我来说一下,首先你需要去生成一张证书,按照步骤来,我发现大家不清晰的一点就是导入csr文件,这个文件是从你本地钥匙串获取的,是你这台电脑的一个证明书,然后在去为你的项目注册一个app ID,也是按照步骤来,在给你的测试设备的udid编号
2017-02-05 15:14:29
470
原创 C语言简单运算
关于i++和++iiint i =1; printf("%d",i++);先使用i的值,输出1,然后自加,内存中为2printf("%d",++i);先使用内存中i的值自加输出3,内存中的i为3
2016-12-04 15:05:00
824
原创 多线程实现重获短信验证码功能
#import "ViewController.h"@interface ViewController ()@property(nonatomic,strong)dispatch_source_t timer_t;@property (strong,nonatomic) IBOutletUIButton *messageCode;
2016-11-23 22:09:56
897
原创 iOS环信集成心得
最近闲着没事,集成了环信的SDK,越来越多的app都倾向于用户的交互了,所以即时通讯也被应用的越来越广泛,其实有第三方,客户端还是挺轻松的. 首先对于新手来说,一定要先去看环信API的服务器集成文档,去了解一下数据存储的逻辑,要不然会有很多转不过弯的问题 然后我就直接上关键代码-(NSMutableArray *)datasources{ if (!_da
2016-11-23 21:54:56
1257
原创 使用AFNetworking上传相册或拍照的图片
前几天写了一下NSURLSession下载,今天就写一个上传吧#import "ViewController.h"#import "AFNetworking.h"@interface ViewController ()UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControlle
2016-02-21 23:13:07
557
原创 iOS 使用NSURLSession进行断点续传
在6.0系统NSURLConnection也是可以断点续传的,但是在7.0系统后苹果主推NSURLSession这个类;看到AFNetworking3.0版本,大家也能看出趋势,所以今天我就写一个关于NSURLSession的断点续传; 曾经也被这个需求难过,所以希望能够帮助到别人,废话不多说,上代码;/////////////@interface
2016-02-18 20:33:07
438
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人