美文网首页iOS开发iOS自学之路iOS高级
iOS之代码优雅法则之 GCC Code Block Eval

iOS之代码优雅法则之 GCC Code Block Eval

作者: Jamp_iOS | 来源:发表于2015-09-30 15:03 被阅读1953次

前言

    最近代码量少, 遂在网上找各种资料学习代码的优雅之道.

GCC Code Block Evaluation C Extension语法简介

    GCC Code Block Evaluation C Extension(以下简称GCC)语法十分优雅,它能够在局部初始UI以及处理逻辑,在团队协作中方便同事快速读懂你的UI布局.

语法

项目中的实践

  在实际码砖中,控制器 UI 在 viewDidLoad 方法中初始化. 学习GCC之前我的设置 UI 的方法是这样的:

在viewDidLoad中调用UI的初始化方法
初始化UI

  现在我打算通过这种方式设置UI: 重写UI属性的setter方法,然后在viewDidLoad 方法里面直接添加为self.view的shubview,具体实现方式如图.

1.添加subview
2.初始化norButton 3.初始化norImageView

总结

  GCC布局UI,能够让代码变得更加干净,更加安全,更加简洁,能够在团队协作中发挥很大的作用.

参考链接
GCC Code Block Evaluation C Extension 

相关文章

网友评论

  • afecc2094551:简洁,以后就用这种风格了
  • 字节码:这个可以理解为函数式编程吗,Xcode7及以前我还经常偶尔用,关联代码比较集中,但是Xcode8我敲出来就报错了,现在不用了
  • 我叫阿水:我是今天看到别人的源码里有这样写,一瞬间有点懵。。。我就有一点不太理解,例如self.a =({a = init();.....; a;})代码块里最后这句a;是固定的写法吗 -- 是不是可以理解为return a回去 - - :joy:
    我叫阿水:@X_erath 在项目中有去尝试这样写,不过看着都怪怪的,还是不习惯:joy:
    fdf6e6855295:@KiBen 首先你要了解什么是GCC ,其实原理很简单 就是编译器编译代码块(用大括号括起来)后最后的结果,如果不写a,你说结果是什么。
  • 43bd89865d8c:确实很优雅,但是我在里面用宏定义会报错,怎么解决了?
    Jamp_iOS:@林梦兮 为什么要在里面定义宏咧,不太好吧 :grin:
  • 萌小菜:这也是一种格式吧....
  • Shelin:可以尝试改变一下,最近弄代码规范
  • RunningCoderLee:请教一下,用GCC Code Block Evaluation C Extension语法懒加载UI控件的时候是不是控件类型必须是strong,在weak下怎么写呢?
    Joyang:weak的话引用计数不增加,但是指针还是指向这块空间的,这块空间没有被引用就有被再次利用的风险,之所以可以正常执行,是因为恰巧没有被利用,这就是传说中的野指针呗,还是用Strong吧
    RunningCoderLee:@半个童钱
    那下面这种情况可以么(我声明成weak可以正常执行,只是会有警告提示)
    - (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:self.webView];
    }
    - (UIWebView *)webView {
    if (!_webView) {
    _webView = ({
    UIWebView *webView = [[UIWebView alloc] init];
    webView.frame = self.view.bounds;
    [self.view addSubview:webView];
    webView;
    });
    }
    return _webView;
    }
    Jamp_iOS:@噬灵梦魇 不能用weak,这个时候用strong是没有问题的,
  • 风了个1:模块化更清晰了
  • 709b16930696:懒加载控件感觉更方便
  • keayou:学习了,以后就这样写
  • Seaboy灬:话说我都是这么写的,没想到居然还有这么高雅的名字。
  • tom510230:不是很好的做法,第一,根据MVC原则,在controller中写渲染代码是不合适的,第二,如果需要根据业务逻辑来区分同一个控件的不同表现,就肯定会出现业务代码和渲染代码混编的情况
    Jamp_iOS:@tom510230 是很好的的写法,可以根据实际需求来写啊,并不是无脑写,代码,要灵活,灵性
  • e1d5d9596e20:很不错,下次我也使用一下,多用就习惯了
  • 尘间:lazy init
  • 孙沪stupid:听君一席话,胜读十年书,👍👍👍
  • 叫我李五:我也觉得这种方法相对明了些,现在也开始这样写了~

本文标题:iOS之代码优雅法则之 GCC Code Block Eval

本文链接:https://www.haomeiwen.com/subject/ixeoxttx.html