swift 01

文件之间引用不用import

数组和字典

let array : Array= ["why", 18, 1.88]---泛型

var arr : [Any] = ["11","222",222222]

如果数组中是同一类型

var arr  = ["11","222",222222]----类型推导

arr.append(3333)

var dic :[String : Any] = ["dddd":123,"jjj":"ffff"]

dic["hao1"] = "上海"

类型推导

可选类型(可强制解包!  不推荐使用   只有可选类型可以=nil)

类型绑定(解决可选类型)

可选绑定

1> 判断name是否为nil, 如果为nil, 不执行后面的{}代码

 2> name不为nil, 系统会先对name进行!, 并且将解包后的结果, 赋值给tempName

if let tempName = name {print(name)}

if 和 guard

语法糖

var haode : String? = nil

haode = "jack"

if let haode = haode{

print(haode)

print(haode)

}

private : 私有-----d当前作用域私有

fileprivate : 文件私有---当前文件私有

internel : 默认

public :

open :

**********

class ViewController: UIViewController ,UITableViewDataSource,UITableViewDelegate{

// MARK: 属性

// 懒加载两个特性: 1> 用到时再加载 2> 多次使用只会加载一次

// fileprivate lazy var tableView : UITableView = UITableView()

// self不能省略的地方: 在闭包中使用到self, self不能省略

//懒加载-fileprivate lazy var name = {}()写法

fileprivate lazy var tableView : UITableView = UITableView()不需要初始化属性写法

fileprivate lazy var tableView : UITableView = {

let tableView = UITableView()

tableView.frame = self.view.bounds

tableView.dataSource = self

tableView.delegate = self

return tableView

}()

extension UIColor{

//  计算属性: 只读属性--类属性--只读都处理好

class var randomColor : UIColor {

return UIColor(r: CGFloat(arc4random_uniform(256)), g : CGFloat(arc4random_uniform(256)), b : CGFloat(arc4random_uniform(256)))

}

在extension中扩充构造函数, 只能扩充便利构造函数

1> 在init前需要加上关键字convenience

2> 在自定义的构造函数内部, 必须明确的通过self.init()调用其他的构造函数

convenience init(r : CGFloat, g : CGFloat, b : CGFloat, alpha : CGFloat = 1.0) {

self.init(red: r / 255.0, green: g / 255.0, blue: b / 255.0, alpha: alpha)//调用系统

}

}

你可能感兴趣的:(swift 01)