Swift与OC的区别

  1. OC
    UIView *redView = [[UIView alloc]initWithFrame:CGRectMake(0, 30, 100, 100)];
    redView.backgroundColor = [UIColor redColor];
    [self.view addSubview:redView];

Swift

        let a = 10; let b = 20
        
        // 定义一个常量,视图
        let v = UIView(frame: CGRect(x: 0, y: 20, width: 100, height: 100))
        
        v.backgroundColor = UIColor.redColor()
// 调用方法统一使用 .
        self.view.addSubview(v)
 2. OC 类方法
[UIColor redColor];
    Swift UIColor.redColor
UIColor.redColor
 3. OC 的枚举 UIButtonTypeContactAdd
    Swift 中 UIButtonType.ContactAdd
    1> 可以直接省略前缀 .ContactAdd,但是 Xcode 的智能提示有的时候不给力
    2> 如果没有智能提示,可以直接 `回车`,`->`,`.`
 4. 监听方法
    OC 使用 @selector(actionName)
    Swift 直接使用字符串,提示:可以先用智能提示敲出方法名,然后增加引号

oc

-(void)test{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button addTarget:self action:@selector(didClick:) forControlEvents:UIControlEventTouchUpInside];
    
}

-(void)didClick:(UIButton*)button{
    
}

swift

        // 创建按钮
        let btn = UIButton(type: UIButtonType.ContactAdd)
        
        v.addSubview(btn)
        
        // 监听方法
        btn.addTarget(self, action: "clickButton", forControlEvents: .TouchUpInside)
        
    }
    
    func clickButton(btn: UIButton) {
        print(__FUNCTION__)
        print(btn)
    }

如果有参数直接增加 ':'

 5. 没有分号 - 在程序语言中,`;` 用于拆分语句,表示一个完整的语句结束
    Swift 中,大多数情况下不需要分号

你可能感兴趣的:(Swift与OC的区别)