次元空间

次元空间

    • 异世界的大门
    • 档案岛
    • AboutMe

Runtime应用防止按钮连续点击

好久之前就看到过使用Runtime解决按钮的连续点击的问题,一直觉得没啥好记录的。刚好今天旁边同时碰到这个问题,看他们好捉急而且好像很难处理,于是我先自己看看…前面自己也学习了很多Runtime的东西,一直觉得这个按钮连续点击其实很简单,就使用Runtime交换SEL实现IMP即

2018-04-22

NSMapTable

YYCache中看到使用了NSMapTable这个字典类,一直没用过这个类字典,真不知道有什么用。百度学习了下,记录… NSMapTable的头文件123456789101112131415161718192021222324252627282930313233343536373

2018-03-02

CoreFoundation、CFDictionaryApplyFunction

遍历一个字典的key和value,不断的调用一个c函数,并传入一个Context实例 Context1234typedef struct {void* object;void* value;}MyConext; 回调c函数12345static void My

2018-02-24

代码重构六 业务逻辑代码

针对量大、复杂的业务逻辑性判断、处理代码进行比较好的隔离,有很多的好处: 需要直接将某一块业务处理,直接拖到一个其他的工程,能够直接使用 多个业务逻辑实现版本更替 帮助新进员工快速熟悉业务代码流程 改进一、抽象业务逻辑 与 具体业务逻辑 业务接口抽象 12345678910

2018-01-27

代码重构五 续解耦ViewController方法之模拟URLScheme

避免在ViewControllerA中导入其他ViewControllerB.h、ViewControllerC.h。之前记录了两种方法: 使用 一个枚举值 映射 一个ViewController,提供一个父类ViewController 此种方法,可能会造成 枚举值 越来越多

2018-01-26

代码重构四 抽象接口的设计原则记录

对于一切 可能发生变化的功能点 使用 抽象接口 隔离重构代码过程中,发现过去的一些封装思路好像都忘记的差不多了,还是回头记录下,经常温习把. 接口设计原则一、接口隔离变化 可能发生的变化点 流程性逻辑 变化 子模块内部实现 变化 可见视图 变化 将会经常变化的一些相关联性

2018-01-26

代码重构三 ViewController之间的解耦

一般的App中,ViewControllerA要push到ViewControllerB,为如下几步:1231. ViewControllerA.m 导入 ViewControllerB.h2. new 一个 ViewControllerB 的实例3. [ViewControll

2018-01-26

代码重构二 UIView的数据适配

常见在UIView中直接耦合实体类型对象1234567@interface ShopModel : NSObject@property (nonatomic, copy) NSString *shopName;@property (nonatomic, copy) NSStrin

2018-01-26

代码重构一 MethodParam接口方法参数经常变动

重构别人的App代码时,发现了一个问题 就是一个业务接口的参数,可能会经常改变 但是又不好修改业务接口的参数 可能造成很多的地方都得修改 解决方法: 将参数列表抽象成一个协议下面开始demo 登陆和注册业务接口需要的参数抽象 MyServiceRequestParamete

2018-01-26

NSURLCredential 身份认证

当时也https://连接进行客户端与服务端的数据传输时,web服务器接收到客户端请求时可能需要先验证客户端是否正常用户,再决定是否返回该接口的真实数据123456比如: web服务的某一些URL的访问,需要提供 `身份认证、一定权限`才能通过,否则直接返回 `401系统错误`,

2017-12-28
123…10Next

Links

业精于勤而荒于嬉,行成于思而毁于随
天空不曾流过痕迹,但鸟儿已飞过天空

Powered by hexo and Theme by Jacman © 2019 terriermon