美文网首页
Object-C 语法

Object-C 语法

作者: Nidalee丶 | 来源:发表于2015-12-17 20:28 被阅读89次

    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 语法

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