首页 > 代码库 > 浅谈Objective-C对象初始化的三类程序猿
浅谈Objective-C对象初始化的三类程序猿
序
早上看了位仁兄写了《Swift:让人眼前一亮的初始化方式》的文章。什么?!初始化?Objective-C!好吧,吓哔哔~~~
一、普通程序猿
普通程序员使用最常见路人姿势等场。普普通通,纯属陆仁贾。
1 UIView *v = [UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 100)];2 v.backgroundColor = [UIColor whiteColor];
二、文艺程序猿
文艺程序猿,使用教科书姿势登场。使用builder模式。
首先给NSObject增加扩展接口
1 // 扩展NSObject,增加Builder接口 2 @interface NSObject (Builder) 3 4 + (id)z0_builder:(void(^)(id that))block; 5 6 - (id)z0_builder:(void(^)(id that))block; 7 8 @end 9 10 // 实现11 @implementation NSObject (Builder)12 13 + (id)z0_builder:(void(^)(id))block {14 id instance = [[self alloc] init];15 block(instance);16 return instance;17 }18 19 - (id)z0_builder:(void(^)(id))block {20 block(self);21 return self;22 }23 24 @end
使用
1 - (void) foo { 2 // 使用 3 UIView *v1 = [UIView z0_builder:^(UIView *that) { 4 that.frame = CGRectMake(0, 0, 320, 200); 5 that.background = [UIColor whiteColor]; 6 }]; 7 8 UIView *v2 = [[UIView alloc] init]; 9 [v2 z0_builder:^(UIView *that) {10 that.frame = CGRectMake(0, 0, 320, 200);11 that.background = [UIColor whiteColor];12 }];13 }
三、二逼程序猿
最后入场的是二逼程序猿。!#!@#@%&……&%&#¥%!@#¥!@#¥!!!!! 这个是什么卵?
其实....我也不知道!>_<# 自行领悟。
1 - (void) foo {2 UIView *v = ({3 UIView *v = [UIView alloc] init];4 v.frame = CGRectMake(0, 0, 320, 200);5 v.background = [UIColor whiteColor];6 v;7 });8 }
总结
总结个鬼,就几行代码。爱干啥,干啥去~~ 下班闪人~ 白了个掰!
浅谈Objective-C对象初始化的三类程序猿
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。