Swift 开发之懒加载的实例详解

发布时间 - 2026-01-11 03:17:28    点击率:

Swift 开发之懒加载的实例详解

/// A display link that keeps calling the `updateFrame` method on every screen refresh. 
private lazy var displayLink: CADisplayLink = { 
  self.isDisplayLinkInitialized = true 
  let displayLink = CADisplayLink(target: TargetProxy(target: self), selector: #selector(TargetProxy.onScreenUpdate)) 
  displayLink.add(to: .main, forMode: self.runLoopMode) 
  displayLink.isPaused = true 
  return displayLink 
}() 

public var priority: Float { 
    get { 
      return internalTask.priority 
    } 
    set { 
      internalTask.priority = newValue 
    } 
  } 

一个VC上放了一个按钮,然后点击按钮打印刚刚定义的懒加载对象names,按理说“--------------”应该只打印一次

/* 
 用到时再加载 
 多次使用只加载一次 
 */ 
lazy var names :[String] = { 
  let names = ["why", "lmj", "swd"] 
  print("------") 按理说应该只打印一次 
  return names 
}() 
 
//方式一:仅仅创建button 
lazy var btn1:UIButton = UIButton() 
 
//方式二:可以设置更多btn的属性 
lazy var btn :UIButton = { 
  let btn = UIButton() 
  btn.setTitle("按钮", for: .normal) 
  btn.setImage(UIImage(named:""), for: .normal) 
  return btn 
}() 

点击按钮打印

//MARK: 点击事件 
func buttonClick(_ sender:UIButton) 
{ 
   print("----\(names.count)") 
} 

看看控制台的打印结果:

------

----3

----3

----3

----3

从以上结果可以看出“--------------”确实只打印了一次。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Swift  # 懒加载  # 懒加载的实例  # 懒加载如何实现  # Swift中的HTTP模拟测试示例详解  # Swift中的HTTP请求体Request Bodies使用示例详解  # swift版webview加载网页进度条效果  # Swift快速集成下拉刷新和上拉加载更多示例代码  # Swift HTTP加载请求Loading Requests教程  # 加载  # 按理说  # 如有  # 希望能  # 可以看出  # 谢谢大家  # 时再  # 疑问请  # target  # TargetProxy  # CADisplayLink  # displayLink  # isDisplayLinkInitialized  # true  # selector  # runLoopMode  # isPaused  # return  # forMode  # onScreenUpdate 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  使用Dockerfile构建java web环境  如何用花生壳三步快速搭建专属网站?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  如何挑选高效建站主机与优质域名?  Android使用GridView实现日历的简单功能  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Python图片处理进阶教程_Pillow滤镜与图像增强  如何用虚拟主机快速搭建网站?详细步骤解析  php485函数参数是什么意思_php485各参数详细说明【介绍】  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  JS实现鼠标移上去显示图片或微信二维码  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Swift中循环语句中的转移语句 break 和 continue  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  如何快速重置建站主机并恢复默认配置?  音响网站制作视频教程,隆霸音响官方网站?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  JavaScript如何实现音频处理_Web Audio API如何工作?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  简单实现Android验证码  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  实例解析Array和String方法  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何快速搭建支持数据库操作的智能建站平台?  奇安信“盘古石”团队突破 iOS 26.1 提权  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  JavaScript如何实现继承_有哪些常用方法  历史网站制作软件,华为如何找回被删除的网站?  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  微信推文制作网站有哪些,怎么做微信推文,急?  开心动漫网站制作软件下载,十分开心动画为何停播?  如何在万网主机上快速搭建网站?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  无锡营销型网站制作公司,无锡网选车牌流程?  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  个人摄影网站制作流程,摄影爱好者都去什么网站?