IOS中的Swift基础(懒加载,代理协议)
2016-10-28 09:12
316 查看
// lazy.swift
import Foundation
class lazy: NSObject {
//如果外部不使用的话就加载好了
var arr1:[String] = ["1","2","3","4"]
//如果外部不使用就不加载
lazy
var arr:[String] = {
let temp = ["1","2","3","4"]
return temp
}()
lazy
var dic:[String:[String]] = {
let dic = ["Y":["鱼","yyy"],"choubi":["何帅","dafae"],"lowB":["邱宗旺","dasdxz"]]
return dic
}()
}
// leader.swift
import Foundation
/*
协议
protocol 协议名{
}
*/
protocol HouseWork{
//协议(主人想找个仆人干的事情),只写方法名(具体的实现听主人)
func washClose()
func cearBaby()
}
//
leader是主人的身份
class
leader: NSObject {
//定义一个代理:需要一个仆人,这个仆人要做的事情
//格式:var delegate:协议名?
var delegate:HouseWork?
func doHouseWork(time:String){
if time ==
"晚上" {
//谁的代理去做某一件事情
leader.delegate?.cearBaby()
}
else
if time == "中午"{
leader.delegate?.washClose()
}
else {
println("随便")
}
}
}
// waite.swift
import Foundation
//waite是仆人的身份
class waite: NSObject {
}
/*
遵守协议,并且实现协议里面的方法
格式
extenion 本类名:协议名{
实现协议里面的方法
}
*/
extension waite:HouseWork{
func washClose() {
println("洗衣服")
}
func cearBaby() {
println("带孩子")
}
}
// main.swift
import Foundation
//懒加载:数据等到使用的时候判断数据是否创建过,如果加载过则拿来使用,如果没有则加载再使用
//使用懒加载的好处,可以加速编译阶段,提高代码运行效率
/*
lazy var 变量名:变量的数据类型
= {
let出来一个同样数据类型的数据,最后return出来
}()
*/
let lazy1 = lazy()
println(lazy1.dic)
//代理(保姆:能帮你做一些事情)-协议(保姆能帮你做的事情:洗碗,洗衣服,带小孩。。。)
//仆人
let waite0 = waite()
//主人
let leader0 = leader()
//主人
找了仆人,设置代理。只要设置了代理,就要遵守协议
leader0.delegate =
waite0
leader0.doHouseWork("中午")
import Foundation
class lazy: NSObject {
//如果外部不使用的话就加载好了
var arr1:[String] = ["1","2","3","4"]
//如果外部不使用就不加载
lazy
var arr:[String] = {
let temp = ["1","2","3","4"]
return temp
}()
lazy
var dic:[String:[String]] = {
let dic = ["Y":["鱼","yyy"],"choubi":["何帅","dafae"],"lowB":["邱宗旺","dasdxz"]]
return dic
}()
}
// leader.swift
import Foundation
/*
协议
protocol 协议名{
}
*/
protocol HouseWork{
//协议(主人想找个仆人干的事情),只写方法名(具体的实现听主人)
func washClose()
func cearBaby()
}
//
leader是主人的身份
class
leader: NSObject {
//定义一个代理:需要一个仆人,这个仆人要做的事情
//格式:var delegate:协议名?
var delegate:HouseWork?
func doHouseWork(time:String){
if time ==
"晚上" {
//谁的代理去做某一件事情
leader.delegate?.cearBaby()
}
else
if time == "中午"{
leader.delegate?.washClose()
}
else {
println("随便")
}
}
}
// waite.swift
import Foundation
//waite是仆人的身份
class waite: NSObject {
}
/*
遵守协议,并且实现协议里面的方法
格式
extenion 本类名:协议名{
实现协议里面的方法
}
*/
extension waite:HouseWork{
func washClose() {
println("洗衣服")
}
func cearBaby() {
println("带孩子")
}
}
// main.swift
import Foundation
//懒加载:数据等到使用的时候判断数据是否创建过,如果加载过则拿来使用,如果没有则加载再使用
//使用懒加载的好处,可以加速编译阶段,提高代码运行效率
/*
lazy var 变量名:变量的数据类型
= {
let出来一个同样数据类型的数据,最后return出来
}()
*/
let lazy1 = lazy()
println(lazy1.dic)
//代理(保姆:能帮你做一些事情)-协议(保姆能帮你做的事情:洗碗,洗衣服,带小孩。。。)
//仆人
let waite0 = waite()
//主人
let leader0 = leader()
//主人
找了仆人,设置代理。只要设置了代理,就要遵守协议
leader0.delegate =
waite0
leader0.doHouseWork("中午")
相关文章推荐
- iOS基础——浅谈个人对协议、代理的理解
- iOS Swift创建代理协议的多种方式示例
- [置顶] Objective-C ,ios,iphone开发基础:protocol 协议(委托,代理)的声明
- iOS基础——浅谈个人对协议、代理的理解
- 黑马程序员_ios基础总结11_协议,代理
- iOS 开发-Objective-c基础:协议和代理delegate&protocol)
- iOS基础——浅谈个人对协议、代理的理解
- iOS - Swift 创建代理协议的多种方式
- Objective-C ,ios,iphone开发基础:protocol 协议(委托,代理)的声明
- iOS基础网络教程-Swift版本: 3.使用UIWebView加载本地的数据
- iOS基础——浅谈个人对协议、代理的理解
- 黑马程序员——ios开发基础之OC中的分类、协议、延展和代理
- 黑马程序员-java基础加强_代理和类加载器
- ios 协议代理
- iOS基础 - UITableView的数据源(dataSource)和代理(delegate)
- Objective-C ,ios,iphone开发基础:协议(protocol)
- iOS 开发之协议-代理传值
- objective-c基础语法学习之--(5):类目,延展,协议,代理
- 基础加强 类加载器 代理
- 黑马程序员-基础加强04类加载 动态代理