Object-C 语法

1.@
@() 代表NSNumber类型
@1;
[NSNumber numberWithInt:1]; //等价于
@('c’);
[NSNumber numberWithChar:'c']; //等价于

@[] 代表数组NSArray类型
@[@"1",@"2",@"3”];
[NSArray arrayWithObjects:@"1",@"2",@"3", nil]; //等价于

@{}代表字典NSDictionary类型
@{@"456":@"123”};
[NSDictionary dictionaryWithObject:@"123" forKey:@"456"]; //等价于

2.方法声明
返回值如果不写括号,编译器默认是id类型:
-sendMessage; -(id)sendMessage;//等价于

参数如果不写类型默认也是id类型
-(void)sendMessage:msg; -(void)sendMessage:(id)msg;//等价于

有多参数时方法名和参数提示语可以为空
-(void):msg1 :msg2; -(void)sendMessage:(id)msg1 message2:(id)msg2;
// 省略前,不建议这样简写,代码可读性降低

3.结构体
CGRect rect = {1, 2}; CGRect rect = {1, 2, 0, 0}; // 等价于

4.三元条件表达式(针对字符串)
NSString *string = inputString ?: @"default"; NSString *string = inputString ? inputString : @"default"; // 等价于

5.小括号内联复合表达式
来自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];
//这样使得代码量增大时层次仍然能比较明确。

你可能感兴趣的:(Object-C 语法)