本篇主要记录一下我对界面优化、时间优化和耗电优化、安装包瘦身上的一些探索。我尽量按照自己的理解来进行描述,如有不当,欢迎指正。
一、界面优化
1、卡顿原理
要了解卡顿原理,需要对帧缓冲区、垂直同步、CPU 和 GPU 几个词进行一下了解,然后综合起来,就可以得到卡顿的
消息转发机制的原理 其实就是在内部做了三次的补救机会
第一次是动态解析 利用runtime动态添加实现代码
resolveInstanceMethod:与resolveClassMethod:
第二次是快速转发 也就是重定向接受者 它会去找其他的类 将消息转发给可以响应
多线程主要分为三种:NSThread、NSoperationQueue、GCD
NSThread 相比其他两个比较轻量级,创建线程简单,但是需要我们自己管理该线程,操作线程比较麻烦。不只是启动,还有该线程使 用完毕后的资源回收;
第一种:先创建线程,再启动线程
NSThread
MVC的优点:
1.易用性:与其他几种模式相比最小的代码量。熟悉的人很多,因而即使对于经验不那么丰富的开发者来讲维护起来也较为容易。
MVC的缺点:
1.较差的可测试性
2.愈发笨重的 Controller
MVVM的优点:
1.方便测试
2.便于代码的移植
3.兼容MVC
缺点
对您有帮助或者您喜欢的话 希望能点个赞或者添加一下关注
一. CALayer和UIView的区别联系1 UIView是UIKIt的只能在iOS使用, CALayer是QuartzCore的 iOS和mac os通用2 CALayer比UIView更加轻量级,但是可以实现同样的效果
在7月30日我们我们忐忑不安地发布了新版网站首页,发布后迎接我们的不是新颜新风貌的惊喜,而是我们最担心的残酷现实——“让我们等这么多年,等来的就是这个新的丑容颜”,在大家的批评声中我们深深地认识到我们不仅没有给大家带来美丽的新容颜,而且丢掉了熟悉的味道,新版首页第一版是失败的改版,我们的
作为开发人员,误操作数据delete、update、insert是最正常不过的了,比如:
删除忘记加where条件;
查询为了图方便按了F5,但是数据里面夹杂着delete语句。
不管是打着后发动机声音噪音过大,缸筒活塞间隙过大,做过全身划痕处理;
还是喷过全身漆,对于有经验的
why do it
如果你的App中包含或涉及到第三方登录(例如:QQ登陆、微信登陆等),就必须接入苹果登陆,如果不适配苹果推出的Sign In With Apple审核将会被拒绝。
what is Sign In With Apple
其实和平时的一些第三方登陆一样,通过授权,可以拿到用
什么情况下会产生死锁?
使用sync函数往当前串行队列中添加任务,会卡住当前的串行队列,必定会产生死锁。
同步和异步的区别
同步和异步的区别在于能不能开启新的线程。
同步(dispatch_sync):在当前线程中执行任务,不具备开启新线程的能力。
异步(dispatch_async):
参考:https://juejin.im/entry/58b93af3ac502e006c0820c9
1.常见的加密方式:Base64、MD5、AES、EDS、RSA
HTTPS 以及SSL/TSL
什么是SSL?SSL(Secure Sockets Layer, 安全套接字层),因为原
点赞再看,养成习惯,微信搜一搜【敖丙】关注这个互联网苟且偷生的程序员。
本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点、资料以及我的系列文章。
开场白
张三最近天气很热心情不是很好,所以他决定出去面试跟面试官聊聊天排解一下
今天在调试一个Winform程序,使用File.Exists 判断一个已经存在的驱动文件,程序一直返回false。因为驱动文件属于系统目录,心想难道是权限不够导致的?然后用管理员身份运行软件,依然返回false。吓的我赶紧去系统目录C:Windowssystem32drives 搜索该文件
仅以此文,记录自己这大半年来的挣扎与迷茫。
2019 年 11 月
在公司工作七个月之后,我被裁员了。
回忆自己这七个月的经历,不管是遇到的人和事,更多感到的是收获和感恩,于是我写下了:「应届毕业生工作7个月小结」,当做对于这七个月的小小总结。
本想好好休息几天,不料第二天还在睡梦中,
这一篇将会介绍卷积神经网络 (CNN),CNN 模型非常适合用来进行图片相关的学习,例如图片分类和验证码识别,也可以配合其他模型实现 OCR。
使用 Python 处理图片
在具体介绍 CNN 之前,我们先来看看怎样使用 Python 处理图片。Python 处理图片最主要使用的类库是 P
首先删除 SceneDelegate.h 和 SceneDelegate.m ,info.plist中的 Application Scene Manifest 和 AppDelegate.m 中的
#pragma mark - UISceneSession lifecycle
- (UI
请输入有效的11位数字手机号码,或者包含区号的11位或12位数字座机号码
出现这个问题按照提示上的来看应该是手机号码输入的不对
但是输入的手机号码的确是11位
这个手机号是开发者账号绑定的手机号
也就是这个开发者账号的苹果ID绑定的电子邮箱和绑定的手机号码
解决方案就是在手机上登录上开发
快手,快影的App保护用的是同一套代码,反调试也很容易,下面请看过程。
>作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:761407670 进群密码‘博客’,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交
此篇文章带你梳理一下操作系统中都出现过哪些算法
进程和线程管理中的算法
进程和线程在调度时候出现过很多算法,这些算法的设计背景是当一个计算机是多道程序设计系统时,会频繁的有很多进程或者线程来同时竞争 CPU 时间片。 那么如何选择合适的进程/线程运行是一项艺术。当两个或两个以上的进程/线
细化时间复杂度分析
代码千千万,有些代码逻辑会很复杂,所以为了更细化的分析算法的复杂度,再复杂度分析方面引入了4个知识点:
1.最好情况时间复杂度(best case time complexity)。
2.最坏情况时间复杂度(worst case time
在 iOS 13 中 Apple 为 UITableView 和 UICollectionView 引入了 DiffableDataSource,让开发者可以更简单高效的实现 UITableView、UICollectionView 的局部数据刷新。新的刷新的方法为 apply,通过使用 app