美文网首页
第一个应用程序

第一个应用程序

作者: Latte_Bear | 来源:发表于2017-10-16 18:13 被阅读0次
    • 第一个应用程序

      第一个应用程序
      1. @UIApplicationMain 就是程序的入口,Swift取消了main函数;
      2. 只有一个 ".swift" 文件,没有 “.h” 和 “.m” 文件,默认为全局共享;
      3. 所有的代码,都包装在 "{}"里面,默认方法都有一个缩进。
    • Objective-C 与 Swift 代码比较

      • Swift
        class ViewController: UIViewController {
             override func viewDidLoad() {
                  super.viewDidLoad()
           
                  // 创建一个视图
                  let v = UIView(frame: CGRect(x: 0, y: 20, width: 100, height:100))
           
                  // 设置背景颜色
                  v.backgroundColor = UIColor.red
           
                  // 添加到当前视图
                  view.addSubview(v)
               
                 // 创建一个按钮
                 let btn = UIButton(type: .contactAdd)
          
                 // 将按钮添加到红色视图
                 v.addSubview(btn)
        
                 // 给按钮添加点击事件
                 btn.addTarget(self, action: #selector(clickMe), for: .touchUpInside)
            }
            fun clickMe() -> () {
                 print(#function)
                 print("这里可以打印东西")
            }
        }
        
      • Objective-C
        @interface ViewController ()
        
        @end
        
        @implementation ViewController
        
        - (void)viewDidLoad {
            [super viewDidLoad];
        
            // 创建一个视图
            UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 20, 100, 100)];
        
            // 设置视图的背景颜色
            v.backgroundColor = [UIColor redColor];
        
            // 将视图添加到当前视图
            [self.view addSubview:v];
        
            // 创建一个按钮
            UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd];
        
            //将按钮添加到红色视图
            [v addSubview:btn];
        
            // 给按钮添加点击事件
            [btn addTarget:self action:@selector(clickMe) forControlEvents:UIControlEventTouchUpInside];
        }
        
        - (void)clickMe {
            NSLog(@"%s", __FUNCTION__);
            NSLog(@"这里可以打印东西");
        }
        
        @end
        
        
      • 代码效果展示


        视图效果展示
        Swift打印效果展示
        Objective-C打印效果展示
    • 总结

    1. 实例方法:[[UIView alloc] initWithXXX];等价于UIView(XXX)
    2. 类方法:[UIColor redColor]; 等价于 UIColor.red,Swift3.0及早期版本写法为UIColor.red(),其中 "()" 表示执行;
    3. 访问当前对象的属性,"self."可用可不用(原因:闭包会使用到self.),官方建议都不用self.,在编译器提示的时候再添加会对语境有更好的体会。
    4. 在Swift中默认语句的结尾不需要分号(“;”).
    5. 枚举(struct)类型
      • Objective-C:UIButtonTypeContactAdd
      • Swift:.contactAdd
    6. 监听方法
      • Objective-C:@selector
      • Swift:#selector,如果需要传参不需要添加“:”
        Swift2.0的时候不需要关键字,写法为btn.addTarget(self, action: "clickMe", for: .touchUpInside)
    7. 调试
      • Objective-C:

        有时间信息并且精确到具体毫秒,效率很低,占用内存比较大;
        跟踪方法的函数为 ____FUNCTION_____

      • Swift:

        没有时间信息,相较于Objective-C效率更高。
        跟踪方法的函数Swift3.0之后改成 #function3.0之前与Objective-C一样,官方文档未给出改变原因

    相关文章

      网友评论

          本文标题:第一个应用程序

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