头图

SegmentFault 思否技术周刊 Vol.77 — 探究关于 iOS 的特性

本期技术周刊一起探究关于 iOS 的特性,欢迎大家阅读 ~

文章推荐

探究 iOS 内存问题 // 杭城小刘

本文从 Tagged Pointer、objc 源码、dealloc 原理、AutoreleasePool 原理、野指针探究等技术点展开聊了聊 iOS 内存相关问题。

一行代码解决 Scrollview 和 TextInput 焦点获取问题 // 似水流年

通过日志以及逻辑分析发现两个问题:

  1. 第一次点击列表项无法触发onPress点击事件
  2. 第一次点击其实是使输入框失去焦点并隐藏键盘

知道问题在哪就有解决问题的方向了:点击列表项使输入框自动失去焦点,并触发onPress点击事件。

【 iOS 】UITextField 输入长度限制时,中文输入法导致的输入问题 // Lynx

当我们有 UITextField 或者 UITextView 最大输入长度需求的时候,会面临一个问题,那就是如果我们使用系统输入法或者其他输入法的时候,在输入最后几个文字的时候,由于部分输入法会将拼音字母等高亮字符展示在输入框内,这时候输入长度就可能超过最大长度,从而导致最后几个文字输入失败,尽管这时候文字还没到最大输入长度。

技术总监:尽快解决这个 ios11 白屏问题 // 牛仔很busy

1 why:为什么会白屏呢?
首先,只有 ios11 才会出现,说明不是没有返回 html,从现象来看可以证实,页面上显示了标题,只是没有内容。通过抓包发现,确实有返回html。基本可以肯定,问题出现在浏览器这一层,也就是上图的红色部分。

2 why:为什么没有内容?
抓包发现有返回 html,也返回了入口 js,也就是 app.xxx.js 和 chunk-vendors.xxx.js。有 js,但没内容,那有两种可能:

  • 入口js没有执行
  • 入口js执行报错了,导致后面渲染页面的代码没有执行

一次 IOS 通知推送问题排查全过程 // 扣钉日记

发现问题:在上周一个将要下班的夜晚,测试突然和我打招呼,说IOS推送的修复更新上线后存在问题,后台报错。连忙跑到测试那里看报错详情,报错如下:
image.png

iOS 之 Swift

Swift 编译器之迷惑行为一 // rickytan

OptionSet 是 Swift 中比较常用的一个内置协议,它的存在算是填补了既要强类型,又要支持按位取与的空白,是对 OC 中 NS_OPTIONS 的桥接。从声明上可以看到,OptionSet 协议本身又服从 SetAlgebra 协议,后者只定义了常见的集合操作方法,如 union remove insert 等,而前者在 extension 中给了默认实现

Swift Talk:理解值类型 // Sunxb

我们使用写时复制 copy on write 的思想,对 NSMutableData 进行封装,以此来理解我们的标准库的实现方式。

标准库中提供的所有的基本集合类型都是值类型,通过写时复制的思想保证了他的高效性。集合类型是我们比较常用到的数据类型,所以了解他的性能特性很重要,我们来一起看一下写时复制是如何工作的,并且尝试自己手动实现一个。

问答推荐


# SegmentFault 技术周刊 #

「技术周刊」是社区特别推出的技术内容系列,一周一主题。

每周二更新,欢迎「关注」。大家也可以在评论处留言自己感兴趣的主题,推荐主题相关的优秀文章。

如有问题可以添加小姐姐微信~

image.png


SegmentFault_社区周刊
主题技术周刊,每周分享新鲜有趣的技术干货。
avatar
Beverly
SegmentFault 思否社区打工人

怂人面前全是坑,努力填坑 。

831 声望
2.1k 粉丝
0 条评论
推荐阅读
SegmentFault 思否技术周刊 Vol.80 — 玩转新时代前端构建工具
Vite 提供了一套原生 ESM 的 HMR API。 具有 HMR 功能的框架可以利用该 API 提供即时、准确的更新,而无需重新加载页面或清除应用程序状态。Vite 内置了 HMR 到 Vue.js 单文件组件(SFC)和 React Fast Refresh 中。

Beverly1

封面图
SegmentFault 思否技术周刊 Vol.76 — 破解 Javascript 玩法
维基百科:在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是在支持头等函数的编程语言中实现词法绑定的一种技术。MDN: 闭包(closure)是一个函数以...

Beverly4阅读 1.2k

封面图
iOSer 年度总结|晋升的逻辑是什么
2022年是疫情3年的一个“小尾巴”,但它一点也不小,因为它是3年内大家感受最深的一年,也是影响最大的一年。身边同事们换工作、周围见闻都可以印证这个结论。

杭城小刘6阅读 1.6k

封面图
SegmentFault 思否技术周刊 Vol.78 — Git 必看技术补给
Git 的诞生是一个非常有趣的故事。1991年 Linus 开源了 Linux 内核,无数 Linux 爱好者在世界各地为 Linux 编写代码,那么问题来了,这些代码该如何管理呢?起初 Linus 使用 BitKeeper(BitMover 公司的版本控制软...

Beverly3阅读 1.5k

封面图
SegmentFault 思否技术周刊 Vol.70 — 深入 MySQL 实战
MySQL 软件采用了 GPL( GNU 通用公共许可证),由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。

Beverly2阅读 1.5k

封面图
SegmentFault 思否技术周刊 Vol.73 — 如何有效地学习 JavaScript ?
在前端开发的过程中,开发者经常会用到 new Date() 来获取当前时间,但是 new Date() 是获取的当前操作系统的时间,由于用户可以修改当前电脑时间,所以它是不准确的。大部分情况下,用户修改当前电脑时间都没有...

Beverly3阅读 1.4k

封面图
iOS 健康共享失败如何解决
您要开始与之共享的对象必须已经连同他们的 iCloud 账户邮箱一起保存在您的“通讯录”中(iCloud 账户邮箱即 iCloud 账户绑定的邮箱信息,不是强制要求 @iCloud.com 邮箱)。

岚哲阅读 5.1k

avatar
Beverly
SegmentFault 思否社区打工人

怂人面前全是坑,努力填坑 。

831 声望
2.1k 粉丝
宣传栏