| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> iOS摸鱼周报 第二十四期 -> 正文阅读 |
|
[移动开发]iOS摸鱼周报 第二十四期 |
本期概要
本期话题@zhangferry:本期访谈对象是 @七里香蛋炒饭,他也是交流群里的小伙伴。了解到他最近刚换工作,从某小公司入职某一线大厂,就邀请他来聊一聊面试的一些感想。 zhangferry:你面试准备了多久,大概的面试经历是怎样的?
zhangferry:结合这些面试经历,有哪些高频题?遇到的算法考察多吗?
zhangferry:现在经常有人说面试八股文,结合面试经历,你怎么看待八股文这个事?
zhangferry:对待参加面试的小伙伴有没有什么建议?
开发Tips在 Objective-C 中实现 Swift 中的 defer 功能整理编辑:RunsCode、zhangferry 期望效果是下面这样,函数执行完出栈之前,要执行 defer 内定义的内容。
准备工作实现
想了解更多,参考:https://nshipster.cn/attribute/
简单实践到这一步,我们已经了解了大概功能了,那我们实战一下:
输出结果:
但是到这一步的话,我们使用不方便啊,何况我们还是 iOSer,这个不友好啊。那么继续改造成 实战优化要做到上面那个理想方案,还需要什么呢?
OK 大功告成跑一下
不好意思, 不行,报错 上最终解决版本之前还得认识两个东西
最终方案好了,差不多了, 是时候展示真功夫了
总共就这么多代码,实现 OC 版本的 其实到了这里已经结束了, 但是还要讲一句:这里与 Justin Spahr-Summers 在 libextobj[1] ( 使用现有证书创建 Fastlane match 格式加密文件简单说下 match 管理证书的工作流程,它将证书文件进行加密存放到 git 仓库,使用方 clone 这个仓库然后解密证书文件,再把证书安装到本机的 keychain 里。这样不同设备上就可以愉快的共享证书了。 match 创建证书有两种方式:
第二种方案不会影响原证书使用,比较推荐。但是看网上介绍这种方案的非常少,所以还是简单总结下: 1、导出文件 需要导出证书、p12 两个文件,将他们放到一个特定文件夹,假定他们的命名分别为:cert.cer、cert.p12。 2、使用 openssl 进行加密 需要一个预设密码,这个可以自定义,作为加密和解密的一个特定参数。
3、推送证书到 git 仓库 每个证书文件都有特定的 ID,推送之前我们还需要修改加密证书的文件名。该 ID 在开发者网站证书详情那一页的网址最后面展示。就是下面码糊住的那一块: 然后我们将那两个文件放到 git 仓库的 certs 目录对应的类型(development/distribution)下,然后进行推送。 4、使用 还记得我们上面设计的加密参数吗,在使用的时候也是需要用到的,我们将其放到
参考:https://docs.fastlane.tools/actions/match/ 面试解析整理编辑:FBY展菲 本期面试解析讲解的是离屏渲染的相关知识点。 为什么圆角和裁剪后 iOS 绘制会触发离屏渲染?默认情况下每个视图都是完全独立绘制渲染的。而当某个父视图设置了圆角和裁剪并且又有子视图时,父视图只会对自身进行裁剪绘制和渲染。 当子视图绘制时就要考虑被父视图裁剪部分的绘制渲染处理,因此需要反复递归回溯和拷贝父视图的渲染上下文和裁剪信息,再和子视图做合并处理,以便完成最终的裁剪效果。这样势必产生大量的时间和内存的开销。 解决的方法是当父视图被裁剪和有圆角并且有子视图时,就单独的开辟一块绘制上下文,把自身和所有子视图的内容都统一绘制在这个上下文中,这样子视图也不需要再单独绘制了,所有裁剪都会统一处理。当父视图绘制完成时再将开辟的缓冲上下文拷贝到屏幕上下文中去。这个过程就是离屏渲染!! 所以离屏渲染其实和我们先将内容绘制在位图内存上下文然后再统一拷贝到屏幕上下文中的双缓存技术是非常相似的。使用离屏渲染主要因为 iOS 内部的视图独立绘制技术所导致的一些缺陷而不得不才用的技术。 推荐阅读:关于iOS离屏渲染的深入研究[2] 优秀博客整理编辑:皮拉夫大王在此、FBY展菲 本期主题: 1、Swift 基于闭包的类型擦除 – 来自公众号:Swift社区 本文重点介绍在 Swift 中处理泛型时可能发生的一种情况,以及通常是如何使用基于闭包的类型擦除技术来解决这种情况。 2、swift 闭包(闭包表达式、尾随闭包、逃逸闭包、自动闭包)[3] – 来自掘金:NewBoy 关于 Swift 闭包的初级文章,内容整合了几乎所有 Swift 闭包的概念和用法。比较适合 Swift 初学者或者是从 OC 转向 Swift 的同学。 3、Day6 - Swift 闭包详解 上 – 来自微信公众号:iOS成长指北 4、Day7 - Swift 闭包详解 下 – 来自微信公众号:iOS成长指北 Swift 闭包学习的两篇文章,也是包含了 Swift 的概念及用法,其中部分用法及概念更加细致。两篇文章是作者学习思考再输出的成果,因此在文章中有些作者的理解,这对我们学习是比较重要的,而且比较通俗易懂。 5、Closures[4] – 来自:Swift Document @zhangferry:对于概念的理解官方文档还是非常有必要看的。Swift 里的闭包跟 C/OC 中的 Block,其他语言中的 Lambda 含义是类似的。Swift 与 OC 混编时,闭包与 Block 是完全兼容的。但就含义来说两者仍有区别,Block 更多强调的是匿名代码块,闭包则是除这之外还有真正的一级对象的含义。 学习资料整理编辑:Mimosa 中国程序员容易发音错误的单词地址:https://github.com/shimohq/chinese-programmer-wrong-pronunciation 在担心和同事讨论代码的时候念的单词同事听不懂?开会 review 代码的时候突然遇到不会读的单词?如果你遇到过这些问题,那来看看这个 github 仓库吧。它是一个收录了在编程领域容易发音错误单词的仓库,目前已经有 14.4k stars 了,他标注出了易错的读音和正确的读音,且支持在线听读音。 IoT for Beginners地址:https://github.com/microsoft/IoT-For-Beginners 这是来自微软 Azure 的物联网课程,是一个为期 12 周的 24 课时的课程,其中有所有关于物联网的基础知识,每节课都包括课前和课后测验、完成课程的书面说明、解决方案、作业等。其中每个项目都是适合学生或业余爱好者的、在真实世界可用的硬件,且每个项目都会提供相关的背景知识来研究具体的项目领域。 工具推荐整理编辑:zhangferry KeeWeb地址:https://keeweb.info/ 软件状态:免费,开源 软件介绍: KeeWeb 是一个浏览器和桌面密码管理器,兼容 KeePass 数据库。它不需要任何服务器或额外的资源。该应用程序可以在浏览器中运行,也可以作为桌面应用程序运行。更重要的是它还可以利用 Dropbox、Google ?Drive 进行远程同步。 关于我们iOS 摸鱼周报,主要分享开发过程中遇到的经验教训、优质的博客、高质量的学习资料、实用的开发工具等。周报仓库在这里:https://github.com/zhangferry/iOSWeeklyLearning ,如果你有好的的内容推荐可以通过 issue 的方式进行提交。另外也可以申请成为我们的常驻编辑,一起维护这份周报。另可关注公众号:iOS成长之路,后台点击进群交流,联系我们,获取更多内容。 往期推荐iOS成长之路 主要专注于 iOS 领域,也会分享一些关于成长和读书的感悟。目前在跟一群可爱的小伙伴一起维护 iOS 摸鱼周报,周报为聚合内容,既有对于日常开发的总结,也会整理收集一些非常棒的学习资料和文章。 54篇原创内容 公众号 参考资料[1] libextobj: https://github.com/jspahrsummers/libextobjc/blob/master/extobjc/EXTScope.h [2] 关于iOS离屏渲染的深入研究: https://zhuanlan.zhihu.com/p/72653360 [3] swift 闭包(闭包表达式、尾随闭包、逃逸闭包、自动闭包): https://juejin.cn/post/6972560642427486238 [4] Apple Document - Closures: https://docs.swift.org/swift-book/LanguageGuide/Closures.html |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:40:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |