之前有说,看好的编程就去敲好的开源项目;一直觉得这个无从下手,但是这次跟着一点点敲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. About Sustainability

    我不喜欢人们常说"紧张感", "危机感".这只会让人觉得疲惫,无非是自己拿鞭子抽着自己,最终会觉得难以继续.那么快乐到底从哪里来?成就感到底从哪里来呢? 我更喜 ...

  2. git入门操作命令(转载)

    以下为git环境搭建: 先建用户-->建组-->用户添加到组   新建项目,命名空间选择组 项目建完后,会分配远端地址. 然后本地配置好远端地址后,提交代码.   设置用户,邮箱 git ...

  3. STL学习笔记

    简介 STL(Standard Template Library),即标准模版库,涵盖了常用的数据结构和算法,并具有跨平台的特点.STL是C++标准函数库的一部分,如下图所示: STL含有容器.算法和 ...

  4. codeforces 446C DZY Loves Fibonacci Numbers 线段树

    假如F[1] = a, F[2] = B, F[n] = F[n - 1] + F[n - 2]. 写成矩阵表示形式可以很快发现F[n] = f[n - 1] * b + f[n - 2] * a. ...

  5. 使用Fiddler针对Android手机网络请求抓包

    本文转载自大牛Trinea的博文:Android利用Fiddler进行网络数据抓包 主要介绍Android及IPhone手机上如何利用Fiddler进行网络数据抓包,比如我们想抓某个应用(微博.微信. ...

  6. XE3随笔15:使用 IXMLHTTPRequest 简单获取网页源代码

    unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  7. ansible-playbook

    一.ansible-playbook介绍: playbook是由一个或多个"play"组成的列表.play的主要功能在于将事先归为一组的主机装扮成事先通过ansible中的task ...

  8. 自己实现atoi的功能

    整理思路: #include <stdio.h> int len(const char *s) { ; while (s[len]) { len++; } return len; } in ...

  9. Linux分析日志获取最多访问的前10个IP

    原文地址:http://xuqq999.blog.51cto.com/3357083/774714 apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问 ...

  10. shell <<EOF

    1.考虑下面的需求,在主shell执行命令,进入其他的命令,后面的输入,想作为命令的输入,而不是主shell的输入,怎么办? 2.使用<<EOF,告诉主shell,后续的输入,是其他命令或 ...