话不多说 直接上代码

class SmartAirConditioner {
var temperature:Int =
//类引用了函数
var temperatureChange:((Int)->())! init() {
/*
[weak self] 表示 self为可选型 可以为nil 所以在使用的时候必须解包
[unowned self]由于在使用前要保证一定有这个对象 所以不必解包 */
// //这是类似于oc的解决方法。
// weak var tempSelf = self
// temperatureChange = {newTemperture in
// if abs(newTemperture - (tempSelf?.temperature)!) >= 10 {
// print("温度变化不大 可以调动")
// }
// }
// temperatureChange = {[weak self] newTempearture in
// //函数中又引用了self 造成了循环引用
// if abs(newTempearture - self!.temperature) >= 10 {
// print("温度变化太大")
// }
// else {
// self!.temperature = newTempearture
// print("这个不错")
// }
// }
temperatureChange = {[unowned self] newTempearture in
//函数中又引用了self 造成了循环引用
if abs(newTempearture - self.temperature) >= {
print("温度变化太大")
}
else {
self.temperature = newTempearture
print("这个不错")
}
} }
deinit {
print("Smart 被销毁了")
} } var airCon:SmartAirConditioner? = SmartAirConditioner()
airCon?.temperature
airCon?.temperatureChange()
airCon?.temperatureChange()
airCon = nil

最新文章

  1. 从点云到网格(二)VRIP介绍
  2. 简单的maven配置
  3. Android中日期函数Calendar的一些用法和注意事项
  4. mysql 主从复制原理
  5. GTD时间管理---非行动性
  6. Android查询:模拟键盘鼠标事件(adb shell 实现)
  7. QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
  8. sublime text 3文件标题无法显示中文的解决办法
  9. Shell脚本——特殊符号
  10. UNIX环境高级编程——守护进程
  11. QQ connect client request's parameters are invalid, invalid openid 问题的解决
  12. 迁移FRS至DFSR SYSVOL
  13. 用Maxima画出一些有趣的图
  14. [05-01]Linux如何重启系统
  15. antd-react-mobile(踩坑记录)
  16. js中获取当前项目名等
  17. ajax多表单序列化
  18. 一个程序如何在调试时退出调试或退出while循环
  19. newcoder H肥猪(单调队列 / 线段树)题解
  20. hadoop-3

热门文章

  1. codevs——1220 数字三角形(棋盘DP)
  2. POJ 3373 Changing Digits 记忆化搜索
  3. Eclipse 最常用的 10 组快捷键,个个牛逼!
  4. ubuntu 配置L2tp出现的问题解决
  5. linux中du的用法
  6. LeetCode OJ 之 Ugly Number (丑数)
  7. 本地搭建Hadoop伪分布式环境之四:开启搭建Hadoop2.4.0之旅
  8. 性能指标 - OEE
  9. 文件I/O之C标准库函数和系统库函数差别
  10. Java设计模式(九)责任链模式 命令模式