iOS开发笔记
程序员小咖
本人自2013年开始从事iOS开发工作至今,现为公司高级开发工程师
展开
-
支付宝、微信sdk支付流程模拟
今天和同事闲聊的时候,聊到对接支付宝和微信sdk的事情,聊完以后兴致未尽。顺便去网上搜了一下,怎样做一款sdk,网上的教程少的可怜,能搜到的也是好坏各异,参差不齐。遂下决心,敲一篇博客,把sdk的实现流程讲解一下。给迷茫中的小白一点思路。还是那句话,一万个读者有一万个哈姆雷特,一万个程序员有一万种编码风格,代码仅供参考。最后的效果如图: sdk内部类文件: 导入sdk后demo内部类文件: ①原创 2016-12-29 13:59:27 · 7066 阅读 · 0 评论 -
iOS架构模式MVC、MVP、MVVM(内附demo)
MVCMVC的实现思路是:用户操作View,在Controller层完成业务逻辑处理,更新Model层,将数据显示在View层。 在MVC中,每个层之间都有关联,耦合比较紧,在大型项目中,维护起来比较费力。 View把控制权交给Controller层,自己不执行业务逻辑;Controller层执行业务逻辑并且操作Model层,但不会直接操作View层;View和Model层的同步消息是通过观察者原创 2017-11-16 17:04:39 · 5042 阅读 · 0 评论 -
从NSURLSession到AFNetworking再到自己封装一个网络框架
从NSURLSession讲起首先从七层网络协议讲起:物理层 –> 数据链路层 –> 网络层 –> 传输层 –> 会话层 –> 表示层 –> 应用层,我们说的NSURLSession是会话层。常用术语讲解: NSURL:请求地址,定义一个网络资源路径。一个请求地址由协议、主机地址、路径、参数(非必须)构成。NSURLRequest:网络请求,根据请求地址建立一个请求。NSMutableURLReq原创 2017-11-17 12:31:39 · 1363 阅读 · 0 评论 -
AFNetworking详细解析之概况介绍
AFNetworking最新版本包含以下几部分:第一部分:AFSecurityPolicy.mAFN提供的三种安全策略:typedef NS_ENUM(NSUInteger, AFSSLPinningMode) { AFSSLPinningModeNone,//无校验 AFSSLPinningModePublicKey,//公钥校验 AFSSLPinningModeCerti原创 2017-10-27 17:18:02 · 1595 阅读 · 0 评论 -
APICloud模拟微信支付调用(非集成微信支付SDK)
最近因为公司业务发展,需要研究APICloud的使用,主要是针对iOS模块化开发这块。我在APICloud官网搜索半天也没得到解决方案,而下载的APICloud Demo过于简单,故经过几天的钻研,找到了解决办法,现总结出来,给有类似需求的朋友提供一个解决方案。老规矩,先发一个效果图(内附iOS模块及项目Demo)。一、两个核心文件内容 APICloudSDK.m#import "APICloud原创 2016-12-02 14:48:29 · 2571 阅读 · 0 评论 -
不改变button大小,扩大点击范围
如图所示: 假设我们要做类似上图的一个效果,点击关闭图片的时候关闭窗口。但是为了整体UI效果,按钮做的小了一些,这时候会影响点击效果。(诚然,有的时候你觉得按钮做大一点不就行了吗,我也是这么想的,可是产品和UI会用一千个理由怼回来的)现在我贴出一个已经测试过的方法供大家使用。我们将要实现的效果如图: 1.新建一个UIButton的Category – UIButton+EnlargeEdge原创 2017-05-16 15:29:41 · 6752 阅读 · 0 评论 -
iOS消息机制--动态方法解析、消息转发机制
动态方法解析: 对象在收到无法解读的消息后,调用类方法+ (BOOL)resolveInstanceMethod:(SEL)sel来动态为其新增实例方法以处理该选择子。(如果尚未实现的方法是类方法,则调用+ (BOOL)resolveClassMethod:(SEL)sel)新建HTResolveMethod类 ①HTResolveMethod.h#import <Foundation/Foun原创 2017-03-16 01:28:54 · 3667 阅读 · 0 评论 -
底部弹出密码输入框
本密码输入框实现效果如下: 底部弹出密码输入成功效果图: 底部弹出密码输入失败效果图: 中间弹出密码输入框输入成功效果图:(失败图脑补吧,就不展示了) HTPasswordShowView.h/** * BottomPop 密码框从底部弹出(类似于支付宝) * ScalePop 密码框从中间弹出(类似于微信) */typedef NS_ENUM(NSUInteger,Passw原创 2017-02-25 18:10:24 · 2097 阅读 · 1 评论 -
自定义键盘(纯数字键盘、小数点键盘、身份证键盘)
本案例实现效果如图: 所需导入类文件及资源文件如图: 核心代码 HTNumberKEyboardView.h#import <UIKit/UIKit.h>/** HTNumberKeyboardType自定义键盘类型 * * 纯数字键盘:HTNumberKeyboardNumber * 小数点键盘:HTNumberKeyboardDouble * 身份证键盘:HTNumberKe原创 2017-02-26 23:03:08 · 7786 阅读 · 1 评论 -
iOS开发监测手机流量使用情况
获取手机使用流量存在几个问题: ①iOS是无法像Android一样监听到开机广播和关机广播的,立刻关机再开机,监测的移动网络下流量会默认清空。 ②应用在后台运行时,突然被杀死,无法对流量统计,需要在应用进入后台时先保存流量使用情况 ③如果用户第一次打开流量统计软件是在2月份,当第3个月打开时,应该对2月份使用的流量清零。但是问题来了,我们所能获取的是从监测开始,消耗的总流量。套餐流量为每个月1原创 2017-02-27 19:07:06 · 8919 阅读 · 6 评论 -
iOS关于内存管理的那点事儿
iOS内存管理iOS内存管理从整体来讲,就四点: ①自己生成的对象,自己持有; ②非自己生成的对象,自己也能持有; ③不再需要自己持有的对象时释放; ④非自己持有的对象无法释放。MRC下的内存管理在进行MRC内存管理时,我们需要注意几点: ①自己生成的对象,自己持有,比如new/alloc/copy/mutableCopy创建; ②非自己生成的对象,自己也能持有,比如retain持有;原创 2018-03-30 19:04:42 · 373 阅读 · 0 评论