首先我们插入一段代码
import UIKit
class ViewController: UIViewController {
//定义属性保存闭包
var finished:(()->())? //闭包的返回值是可选类型
//定义属性必须初始化;如果不想初始化,可以使用可选?来代替
override func viewDidLoad() {
super.viewDidLoad()
loadData {
print("回到主线程更新UI")
//在闭包中必须使用self
self!.view.backgroundColor = UIColor.redColor()
}
}
func loadData(finshed:()->()){
print("执行耗时操作")
self.finished = finshed
finshed()
}
//析构函数,相当于dealloc,释放资源
deinit{
print("滚")
}
}
解决循环引用在oc和swift中是一样的都采用弱引用。如上。