我们新建一个项目 选择 Swift 语言 创建好了之后,项目目录结构如下:
目录结构.png
你会发现 Swift 文件很简洁,有 .swift文件, 不像 OC 那么复杂有 .h 和 .m 文件.
点击 AppDelegate.swift
图一.png
点击 ViewController.swift 我们来写一段代码:
// 创建一个视图
let v = UIView ()
v.frame = CGRect(x: 0, y: 20, width: 100, height: 100)
// let v = UIView(frame: CGRect(x: 0, y: 20, width: 100, height: 100))
//设置背景颜色
v.backgroundColor = UIColor.red
// 添加到当前视图
// 访问当前的属性 可以不用写 self. 建议不写 因为容易和 闭包(类似于Block)搞混
view.addSubview(v)
//self.view.addSubview(v)
上面的代码首先 比 OC 的简约, 几乎没有" ; " ; 的目的是分割语句的 ,写了也不会错 如下:
let a = 10
let b = 20
let c = 30 ;
let d = 40 ; let e = 50
我们在创建一个Button 如下代码:
//创建一个按钮
//OC UIButtonTypeContactAdd
// swift 枚举类型用 “ . ”
let btn = UIButton (type : .contactAdd)
v.addSubview(btn)
// 这样就创建好了
// 监听方法 OC 用@selector
// Swift 用 #selector
btn.addTarget(self, action: #selector(buttonClick), for: .touchUpInside)
//2.0 的版本 是直接用的 ""
//btn.addTarget(self, action:"buttonClick", for: .touchUpInside)
//如果需要带参数
btn.addTarget(self, action: #selector(buttonClick1(btn:)), for: .touchUpInside)
//下面的这种写法也对
//btn.addTarget(self, action: #selector(buttonClick1), for: .touchUpInside)
关于调试:
- OC用的是 NSlog
- swift 用的是 print ,没有显示时间,但是效率要比 NSLog 要高
跟踪函数:
- OC里面是 _FUNCATION_
- Swift 里面是 #function (3.0改成这样的)
与OC 相比 代码简单化了 看起来变得少了,从开发的角度来说 让其他的开发者 也比较清晰的快速看懂别人写的代码了
关于Swift 方法:
func name ( parameters ) -> return type {
function body
}
//Eg:
func buttonClick(btn:UIButton) -> () {
print(#function)
}