一、swift——懒加载
1、懒加载的格式:
定义变量之前用lazy修饰,后面通过赋值一个闭包
注意点:1、必须用var 2、闭包后面必须要跟上()
如果闭包用于懒加载,那么in之前的代码都有可以删除
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
//格式:定义变量前面用lazy修饰变量,后面通过等到赋值一个闭包
//注意点:1、必须是用var 2、闭包后必须要跟上()
//如果闭包用于懒加载,那么in之前的代码都可以删除
lazy var dataList:[String] = {
()->[String]
in
print("我被加载了")
return ["zhujia","xiuxiu"]
}()
lazy var data:[String] = {
return ["123","345"]
}()
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
print(dataList)
print(dataList)
print(dataList)
print(data)
}
}
二、get和set方法
person.swift :
import UIKit
class Person: NSObject {
var gender : String?{
//设置完值之后调用
didSet
{
print(gender)
}
}
//如果只重写了get方法,那么这个属性我们称之为 计算型 属性
//也就是对应OC中的只读属性
//注意点:计算型属性不占用内存空间的
var age:Int?{
get{
return 30
}
}
}
viewController.swift:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//在swift中如果想使用某一个类,不用#import头文件
//因为swift中新增了一个oc中没有的概念,命名空间
//只要是在同一个命名空间下的资源都是共享的
//默认情况下,项目名称就是命名空间
//正是因为这样,所以在做swift开发时有很多的坑,所以在使用第三方框架的时候,建议使用cocoapods,这样可以有效的避免三方框架中的类名和自己项目中的类名重名
let p = Person()
p.gender = "zhujia"
// p.age = "99"
print(p.age)
}
}