iOS链式编程框架介绍之LinkBlock
2015-08-26 15:46
260 查看
谢谢大家帮我点星星啦。[LinkBlock GitHub下载]
从所周知,objc是非常奇怪的语言之一,如果没有苹果养着它,它因该已经只是教科书的课后拓展了。最直观感受就是一般中括号超过三层,不忍直视了。
所以考虑到字写的快连单词都可以多背两个,就是书法也需要速度,所以完成了一个覆盖基本面的扩展框架LinkBlock,基本上开发中常用的方法在这个版本中都可以点出来使用了。
整个框架基于对NSObject的拓展,所有方法依托于扩展的属性,他们都是block类型。
写法简单,一气呵成,减少思路被繁琐创建打断:
同时这也是对于学习Block用法的一个样例。
同时解释一下为什么在NSObject上进行拓展,这是为了解决链式调用某一环调用失败的问题,必须做到两点才不会崩溃,第一:所有对象都响应所有扩展的属性,这保证了在对象不为空的时候调用不崩溃。第二:链条中间环节不能传递nil这个家伙,你知道的[nil XXFuntion]这样是不崩溃的,但是nil.XXProperty一定崩溃的。所以中间传递一个单例的错误对象,才能保证链条不崩溃的情况下调用到最后一环。那么如果为了安全的获取到最后一环的真实返回值,框架唯一一点额外的要求就是使用end()在最后一环调用一下。那么所有过程都是安全快速的。
框架除了对数组,字典,字符串着力外,还对视图和常用动画的使用也加入进来。但并不提供特别化的功能,为的是轻量和容易掌握。
欢迎大家提出bug和一起参与完成更好的objc链式编程: quxingyi@outlook.com
谢谢大家帮我点星星啦。[LinkBlock GitHub下载]
从所周知,objc是非常奇怪的语言之一,如果没有苹果养着它,它因该已经只是教科书的课后拓展了。最直观感受就是一般中括号超过三层,不忍直视了。
所以考虑到字写的快连单词都可以多背两个,就是书法也需要速度,所以完成了一个覆盖基本面的扩展框架LinkBlock,基本上开发中常用的方法在这个版本中都可以点出来使用了。
整个框架基于对NSObject的拓展,所有方法依托于扩展的属性,他们都是block类型。
写法简单,一气呵成,减少思路被繁琐创建打断:
@"0xff22cc".strToColorFromHexStr(); btn.viewSetFrame(20,20,150,80).viewBGColor(@"0xff22cc".strToColorFromHexStr()).viewAddToView(self.view).btnTitle(@"click change color", UIControlStateNormal); NSComparisonResult result = @"".setTo(&str).strAppend(@"abc1.txt").strCompareNumberSensitive(@"abc2.txt");框架考虑的对objc取值的安全性问题,为了保证程序不因从网络获取到异常的值而崩溃,框架提供强类型的取值如:
dict.dictGetNoNSNull(@"key"); dict.dictGetBOOLNoNullType(@"key"); dict.dictGetArrNoNullType(@"key"); dict.dictGetViewNoNullType(@"key");
同时这也是对于学习Block用法的一个样例。
同时解释一下为什么在NSObject上进行拓展,这是为了解决链式调用某一环调用失败的问题,必须做到两点才不会崩溃,第一:所有对象都响应所有扩展的属性,这保证了在对象不为空的时候调用不崩溃。第二:链条中间环节不能传递nil这个家伙,你知道的[nil XXFuntion]这样是不崩溃的,但是nil.XXProperty一定崩溃的。所以中间传递一个单例的错误对象,才能保证链条不崩溃的情况下调用到最后一环。那么如果为了安全的获取到最后一环的真实返回值,框架唯一一点额外的要求就是使用end()在最后一环调用一下。那么所有过程都是安全快速的。
框架除了对数组,字典,字符串着力外,还对视图和常用动画的使用也加入进来。但并不提供特别化的功能,为的是轻量和容易掌握。
欢迎大家提出bug和一起参与完成更好的objc链式编程: quxingyi@outlook.com
谢谢大家帮我点星星啦。[LinkBlock GitHub下载]
相关文章推荐
- iOS iOS8推送消息的快速回复处理
- IOS tableView通过代码自定义cell
- iOS学习笔记20-通过AirServer使用AirPlay镜像并实现多屏幕显示控制
- iOS_lastIndexPath的使用(纯代码做界面)
- iOS删除项目中未使用的图片资源
- 从零开始学 iOS 开发的15条建议
- IOS开发之----天气接口的调用
- iOS - 实现在有限label上 动态显示所有文字
- iOS事件机制(二)
- ios-新浪微博
- iOS开发 - 获取磁盘容量及可用空间
- IOS学习第五篇——类别(category)
- IOS--AFNetWorking
- 得到正确的颜色IOS7半透明导航栏
- iOS 截屏方法
- iOS开发—手动解析CrashLog(二)
- iOS-系统tabbar加选中条
- iOS开发—手动解析CrashLog(一)
- 欢迎来到“渣渣写博客"
- 【iOS】编译静态库