当前位置: 首页 > news >正文

网页设计一个网站网站开发 注意事项

网页设计一个网站,网站开发 注意事项,厦门网站制作系统,开封建设教育协会网站「OC」视图控制器的懒加载策略 文章目录 「OC」视图控制器的懒加载策略懒加载懒加载的优点常见的懒加载实现方法使用懒加载的注意事项 控制器的懒加载参考资料 懒加载 懒加载#xff08;Lazy Loading#xff09;是一种设计模式#xff0c;其核心思想是在需要时才进行对象的…「OC」视图控制器的懒加载策略 文章目录 「OC」视图控制器的懒加载策略懒加载懒加载的优点常见的懒加载实现方法使用懒加载的注意事项 控制器的懒加载参考资料 懒加载 懒加载Lazy Loading是一种设计模式其核心思想是在需要时才进行对象的创建或资源的加载而不是在对象初始化时立即完成。这种技术可以提高程序的性能和效率减少资源的消耗。懒加载特别适用于那些创建代价高、内存占用大或者初始化过程复杂的对象。 懒加载的优点 性能提升通过推迟对象的创建减少了程序启动时的资源消耗和初始化时间。内存优化对象的创建和资源的加载在实际需要时才进行有效节省了内存。提高响应速度初始化时不需要加载所有资源使得程序在启动和运行时更加响应迅速。降低复杂度只在需要的时候才创建和初始化对象有助于降低系统的复杂度。 注意如果使用懒加载的话则一定要注意进行判空如果为空那么再去进行实例化。 常见的懒加载实现方法 在 Objective-C 中懒加载通常是通过重写 getter 方法来实现的。以下是一个示例 #import ViewController.hinterface ViewController ()property (strong, nonatomic) UILabel *label;endimplementation ViewController- (UILabel*) label {if (!_label) {_label [[UILabel alloc]init];_label.font [UIFont systemFontOfSize:45];_label.text LazyLoad;_label.frame CGRectMake(120, 400, 260, 50);_label.textColor [UIColor blackColor];}return _label; }- (void) touchesBegan:(NSSetUITouch * *)touches withEvent:(UIEvent *)event {[self label];//点击后将label添加到视图[self.view addSubview:self.label];}- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view. }end 得到的内容如下当我们点击屏幕懒加载的UILabel才会显示在屏幕之上 一般来说对于需要直接加载在页面上的内容我们不使用懒加载直接进行普通加载即可而那些不出现在首页需要点击才弹出的页面才使用懒加载可以有效缩短加载的时间 在重写getter方法的过程之中我们只能用直接访问属性的方法进行方法(即_加上属性名)如果使用间接访问属性的方法使用getter方法很可能引起循环引用 使用懒加载的注意事项 线程安全在多线程环境中确保懒加载实现是线程安全的。通常需要使用同步机制如锁来防止并发访问导致的问题。性能考虑虽然懒加载可以减少初始化开销但也要确保在实际需要时加载的操作不会过于耗时否则可能会影响用户体验。内存管理确保对象在不再需要时能够被正确释放以避免内存泄漏。 控制器的懒加载 通过我们前面对懒加载的了解我们现在可以在编译器进行实验 SceneDelegate.h - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {self.window.frame [UIScreen mainScreen].bounds;ViewController *vc [[ViewController alloc] init]; NSLog(%s,__func__);vc.view.backgroundColor [UIColor redColor];self.window.rootViewController vc;[self.window makeKeyAndVisible]; }ViewController.h - (void)viewDidLoad {[super viewDidLoad];NSLog(%s,__func__);self.view.backgroundColor [UIColor orangeColor]; }我们最后得到的控制器是一个红色背景的控 制器似乎好像没有问题因为我们先创建控制器在里面对背景颜色赋值再在SceneDelegate.h之中进行重新赋值。 不过我们可以来看看打印的内容 NSLog(%s,__func__);的意思是用于在日志中打印当前函数的名称。看到打印的内容我们先打印出来的是在- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions的方法那么在SceneDelegate.h的赋值程序是先运行的那么关于背景颜色的赋值和我们之前的猜想不同的。 那是怎么回事呢我们再对程序进行打印来印证我们的操作 - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {self.window.frame [UIScreen mainScreen].bounds;ViewController *vc [[ViewController alloc] init];NSLog(%s,__func__);NSLog(访问控制器属性之前);vc.view.backgroundColor [UIColor redColor];NSLog(访问控制器属性之后);self.window.rootViewController vc;[self.window makeKeyAndVisible]; }不难看到只有当我们访问到控制器属性之后才会开始运行[ViewController viewDidLoad]这个方法也就是说只有当访问了属性控制器的视图才会开始进行加载。 我们带着这个猜想继续进行实验我们可以使用isViewLoaded检验控制器是否进行加载 - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {self.window.frame [UIScreen mainScreen].bounds;ViewController *vc [[ViewController alloc] init];if ([vc isViewLoaded]) {vc.view.backgroundColor [UIColor redColor];}self.window.rootViewController vc;[self.window makeKeyAndVisible]; }我们可以看到控制器的背景反而变成了橙色说明当我们创建了控制器控制器并不会马上加载而是我们将控制器作为UIWindow的根视图时或者访问到了控制器的属性控制器才会进行加载。通过以上示例我们其实不难发现懒加载这个方法是在iOS的开发之中随处可以领略到的一个思想 参考资料 【iOS】懒加载 4.10 控制器View的懒加载
http://www.dnsts.com.cn/news/108222.html

相关文章:

  • 网站建设云平台怎么注销自己名下的营业执照
  • 保温管有哪些网站做wordpress站长统计
  • 网站建设定制网站建设公司站长之家关键词查询
  • 饰品网站模版WordPress怎么开启rest
  • 网站空间和数据库的关系网站注册 优帮云
  • 大连建设安全网站华汇建设集团有限公司网站
  • 网站域名所有人长沙传媒公司有哪些
  • 在网站上做教学直播平台多少钱ghost卸载wordpress
  • 网站seo推广提高网站目标流量
  • html5网站开发技术做买衣服的网站有哪些
  • 长葛网站建设开封到濮阳
  • 网站建设和维护待遇良乡网站建设公司
  • 放单网站企业网站优化多少钱
  • 葫芦岛高端网站制作手机怎么建立自己网站
  • 网站灰色代码黄骅网站建设公司
  • SUPERW上海网站建设工作室应用商店下载安装电脑
  • 网站超市源码哪个好陕西建设信息网官网
  • 如何在后台做网站分页百度seo怎么做
  • 怎样用自己的服务器做网站网站建设赫伟创意星空科技
  • 网站开发容易吗视频制作软件免费版下载
  • 海珠区网站建设做刷票的网站
  • 做家具厂招聘有哪些网站深圳网站建设服务好公司
  • 如何搭建高品质网站网站建设的辅助软件
  • 厦门高端网站建设公网站如何做好优化
  • iis如何建立网站百度是不是门户网站
  • wordpress 网站上传到服务器错误用wordpress建站会不会显得水平差
  • 简述网站首页制作过程网站如何注册微信公众平台 类型
  • 非你莫属做网站的卖网币起家的做网站灰色网站怎么判刑
  • 商务网站建设实训过程利用html做博客网站
  • 好看的商城网站鄂州网站建设企业推广