之前有说,看好的编程就去敲好的开源项目;一直觉得这个无从下手,但是这次跟着一点点敲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. JS中变量名作为if条件的 true/flase

    在Javascript中,可以直接将变量名放到if条件中, var a;//甚至不定义 if (a){ //... } 以下情况被认为是flase: 1.''空的字符串 2.数字0 3.对象null ...

  2. 动态调用webservice及WCF服务

    动态调用web服务,该方法只针对Web service, WCF的服务不行,如果是WCF的就通过工具直接生产代理类,把代理类配置到调用的项目中,通过配置客户端的终结点动态的取实现: 通过Svcutil ...

  3. 修改页面JS 360浏览器

    javascript:document.body.contentEditable='true'; document.designMode='on'; void 0

  4. win7 无法修改时区和时间

    电脑用的win7系统, 今天调试程序的时候,想改下时间,才发现修改时区的按钮点了没反应,修改时间的按钮是灰色的,没法保存. 在网上搜了一下,想着应该是用的Ghost安装系统的问题,不过也找到了解决办法 ...

  5. MVC的自定义动作过滤器(一)

    感谢好朋友wolfy在园子里的很多有价值的文章,方便了很多朋友,向榜样学习,开始自己的总结之旅:) 遇到问题: 1.http://q.cnblogs.com/q/67382/#a_150210 //添 ...

  6. VBA操作单元格

    行或列的Group化 ws.Rows("row1:row2").group row1:Group化的开始行                row2:Group化的结束行 ws.Co ...

  7. flex表格的使用

    Flex中表格使用datagrid+columns两个组件构成,dagagrid中定义了表格的外观属性和数据源Columns中定义了表格的列名还有对应的字段,方便从数据源取得数据 数据源的赋值一般有两 ...

  8. [WPF]Slider控件常用方法

    WPF的Slider控件继承自RangeBase类型,同继承自RangeBase的控件还有ProgressBar和ScrollBar,这类控件都是在一定数值范围内表示一个值的用途. 首先注意而Rang ...

  9. 自己关于cocoapods的使用的一些理解和总结

    老大让我自己学习用一下cocoapods的使用,于是自己上网查了很多的信息,在安装使用过程中,总是出现了很多问题,然后发现有些人的教程好像并不完全好用,我的感觉是应该每个人遇到的问题都不尽相同,所以 ...

  10. Free git private repo

    今天在网上搜索了一下,发现除了github之外还有很多免费的git server,列表可以见 https://git.wiki.kernel.org/index.php/GitHosting 对比了一 ...