作为一个有着强迫症的程序猿,喜欢精简干练通熟易懂的代码,so自己总结了一下OC中简写的语法,欢迎补充。
1.方法声明
返回值如果不写括号,编译器默认是id类型:
-sendMessage;
-(id)sendMessage;//等价于
参数如果不写类型默认也是id类型
-(void)sendMessage:msg;
-(void)sendMessage:(id)msg;//等价于
有多参数时方法名和参数提示语可以为空
-(void):msg1 :msg2;
-(void)sendMessage:(id)msg1 message2:(id)msg2; // 省略前,不建议这样简写,代码可读性降低
2.结构体
CGRect rect = {1, 2};
CGRect rect = {1, 2, 0, 0}; // 等价于
3.小括号内联复合表达式
来自Statements and Declarations in Expressions
RETURN_VALUE_RECEIVER = {( // Do whatever you want RETURN_VALUE; // 返回值 )};
//so 我们可以引申为以下这种写法: UIView *view = ({ UIView *view = [[UIView alloc] initWithFrame:self.view.bounds]; view.backgroundColor = [UIColor redColor]; view.alpha = 0.8f; view; }); [self.view addSubview:view]; //这样使得代码量增大时层次仍然能比较明确。
网友评论