之前有说,看好的编程就去敲好的开源项目;一直觉得这个无从下手,但是这次跟着一点点敲MJExtension,我明白了这句话的深度;其实并不需要去找,每一个三方项目都有很多值得学习的地方;笔记一只记录在敲的过程中对于编程的感悟;整体的MJExtension的架构以及实现其实还并不能完全消化掉;后面会继续消化整理;

1、目前只进行到第一阶段,一些宏和基础的类完成,同时把扩展类的.h文件完成,但目前感受最深的是各个类的划分,基础类就做了些基础的工作,每个类的方法都有明确分工,每个类也都表示尽量单一;分类详细严明,而不是一个文件写下来的方式;
 
2、对于runtime的应用很灵活而且很随意,并不是为了特定某个重要方法设计的runtime方式,就像调用一个UIButton的addTaget一样的简单随意,可能更多地时候对于runtime的理解偏于浅显,所以忽略了细节的使用;而在敲MJProperty的时候对于这一点的体会尤其深刻;也是另一个学习点,runtime的用法并没有那么高大上,只是由繁入简这个步骤没有达到;
 
3、对于某一个特性功能的方法,更为细致的考虑是设置多种不同参数情况下的同一功能的实现,考虑在不同情况下的功能实现,OC可以设多个方法,但是Swift我觉得也可以使用默认参数值的方式进行区分,当然这样虽然减少了方法的数量,却同时将代码变得复杂,因为还要区分不同的参数状态;
 
4、静态方法,即OC中就是宏定义的方法的使用,Swift终究是func开头的静态方法的使用,很大程度上可以便捷操作,这一个的使用在MJExtension中尤为重要;
 
5、不必想要毕其功于一役,对于某一个内容较多判断层级较多平行的情况较多的方法,可以按层级分多个方法实现,每一个方法中的内容就回相对简单清晰,很多的不同层级的判断也没有必要都集中在同一个方法中做完;

MJExtension笔记(一)的更多相关文章

  1. iOS开发——笔记篇&关于字典plist读取/字典转模型/自定义View/MVC/Xib的使用/MJExtension使用总结

    关于字典plist读取/字典转模型/自定义View/MVC/Xib的使用/MJExtension使用总结 一:Plist读取 /************************************ ...

  2. cocoa pods自己的笔记

    备注:这里只是个人的观点,有的地方也是copy,多多指教,个人笔记,有侵犯你们版权的地方还望海涵!!! 卡主不动 安装流程:http://www.tuicool.com/articles/qaMfuy ...

  3. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  4. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  5. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  6. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  7. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  8. NET Core-学习笔记(三)

    这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...

  9. springMVC学习笔记--知识点总结1

    以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...

随机推荐

  1. android之handle

    Android中异步消息处理主要由四个部分组成,Message.handler.messageQueue和looper. 1.message message是线程之间传递的消息,他可以在内部携带少量的 ...

  2. Java数据类型转换

    一.Date与String相互转换 1.Date转换成String SimpleDateFormat dd = new SimpleDateFormat("yyyy-MM-dd HH:mm& ...

  3. Linux如何复制,打包,压缩文件

    (1)复制文件 cp -r  要copy的文件/("/"指的是包括里面的内容)   newfile_name(要命名的文件名) eg:cp -r webapps_zero/   f ...

  4. ios 正则表达式之验证手机号、邮箱、身份证、银行卡

    1.手机号 + (BOOL) IsPhoneNumber:(NSString *)number { NSString *phoneRegex1=@"1[34578]([0-9]){9}&qu ...

  5. 关于一个程序的编译过程 zkjg面试

    http://blog.csdn.net/gengyichao/article/details/6544266 一 以下是C程序一般的编译过程: 从图中看到: 将编写的一个c程序(源代码 )转换成可以 ...

  6. Java在处理大数据的时候一些小技巧

    Java在处理大数据的时候一些小技巧 发布时间:2013-05-09 00:00:00 来源:中国IT实验室 作者:佚名   关键字:Java 众所周知,java在处理数据量比较大的时候,加载到内存必 ...

  7. 《VB语言程序设计(第3版)》总结

    我之前因学习昆仑通态的组态软件MCGS,用并学习过VB,还买了一本书<VB语言程序设计(第3版)>.现在在某公司实习,最近接触老的项目,又要用到VB.我就又把那本书大体看了一遍,并对其进行 ...

  8. mysql主从切换

    mysql 主从切换 主停,从做主步骤如下: 1 确认从服务器已经完成所有同步操作:stop slave io_thread show processlist 直到看到状态都为:xxx has rea ...

  9. 用python画xy散点图

    import matplotlib.pyplot as plt plt.plot([1,2,3],[4,5,6],'ro') plt.show()#这个智障的编辑器 这样的话,就可以画一个散点图,图中 ...

  10. 完美解决全面屏蔽Google教程(终结者)

    最近谷歌的IP被大范围的禁用了.身处一个连谷歌都用不了的过度的程序员,深感命运多舛.幸好,魔高一尺,道高一丈.下面是几种可以使用谷歌的方法. 方法一 1)在chrome浏览器中输入:chrome:// ...