掘友等级
坚持原创 以造轮子为乐。
Adhere to the original To build the wheels。 获得徽章 5
今天才发现C++中删除对象数组的方法delete[],不一定会正确调用对象的析构函数,即时析构是虚函数也是如此。所以需要小心使用删除对象数组,删除的指针不要指向基类。
动态化是老板和产品的需求;
性能和包尺寸是老板的需求;
界面和体验一致性是UI的需求;
跨端、统一开发语言是技术的需求;
所以在技术选型时按上面从高到低的来,一般都不会有错。
UIScreen中的nativeBounds属性和nativeScale属性在模拟器中的值和真机的值居然是不一样的,尤其是plus设备,真是太坑人了。
面试必考题:为什么圆角和裁剪后iOS绘制会触发离屏渲染?
答:默认情况下每个视图都是完全独立绘制渲染的。而当某个父视图设置了圆角和裁剪并且又有子视图时,父视图只会对自身进行裁剪绘制和渲染。当子视图绘制时就要考虑被父视图裁剪部分的绘制渲染处理,因此需要反复递归回溯和拷贝父视图的渲染上下文和裁剪信息,再和子视图做合并处理,以便完成最终的裁剪效果。这样势必产生大量的时间和内存的开销。解决的方法是当父视图被裁剪和有圆角并且有子视图时,就单独的开辟一块绘制上下文,把自身和所有子视图的内容都统一绘制在这个上下文中,这样子视图也不需要再单独绘制了,所有裁剪都会统一处理。当父视图绘制完成时再将开辟的缓冲上下文拷贝到屏幕上下文中去。这个过程就是离屏渲染!!所以离屏渲染其实和我们先将内容绘制在位图内存上下文然后再统一拷贝到屏幕上下文中的双缓存技术是非常相似的。使用离屏渲染主要因为iOS内部的视图独立绘制技术所导致的一些缺陷而不得不才用的技术。
今天看到一个有意思的签名:老婆就是私有变量,只有我这个类才可以用。———-看到这句话时我立马就想到了友元。
好久没有发沸点了,安利和推荐一下我的开源布局库新版本:MyLayout1.9.0
国内程序员的开源项目,尤其是大厂的开源项目。在开源前一定要想清楚为后续的使用者负责。否则就是开源者一时爽,使用者受害。如果开源后没有社区的建设计划,没有官网的建设计划,没有及时的issue响应团队,没有重构升级的计划。那么就不要将其开源。
分享一个平时小重构和代码修改后验证的小技巧:为了保证我们重构后的代码以及修改后的代码能够确认被运行,我们可以在修改处或者重构处设置调试断点,然后运行程序,确保所有断点都要运行到。每运行到一处断点时验证当前的逻辑是否正确,如果正确则把此处的断点取消,一直到所有设置的断点都被取消了则表明你所进行的重构和修改都被覆盖到了。
人都是有惰性的。每当一个新技术出来时一定会有一批学习这个技术的人去大力的推进这个事情,而对于老技术人员来说这是新事物所以会比较排斥或者去研究后认为是新瓶装老酒。对于新老技术的问题大家怎么看?这里就举三个例子:flutter,中台,微服务。
下一页