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

业界 作者:SegmentFault 2023-01-14 17:13:41
本期技术周刊一起探究关于 iOS 的特性,欢迎大家阅读 ~


文章推荐



探究 iOS 内存问题 
作者:杭城小刘

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


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

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

  1. 第一次点击列表项无法触发onPress点击事件
  2. 第一次点击其实是使输入框失去焦点并隐藏键盘
    知道问题在哪就有解决问题的方向了:点击列表项使输入框自动失去焦点,并触发onPress点击事件。


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推送的修复更新上线后存在问题,后台报错。连忙跑到测试那里看报错详情,报错如下:



iOS 之 Swift



Swift 编译器之迷惑行为一 
作者:rickytan

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


Swift Talk:理解值类型 
作者:Sunxb

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

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


# SegmentFault 技术周刊 #

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

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



点击左下角阅读原文,到 SegmentFault 思否社区 和文章作者展开更多互动和交流,“公众号后台回复“ 入群 ”即可加入我们的技术交流群,收获更多的技术文章~

- END -

 

延伸阅读
  • SegmentFault 思否写作挑战赛!

    SegmentFault 思否写作挑战赛 是思否社区新上线的系列社区活动,在 2 月 8 日 正式面向社区所有用户开启;挑战赛中包含多个可供作者选择的热门技术方向,根据挑战难度分为多个等级,快来参与挑

  • SegmentFault 思否技术周刊 — 如何优雅的使用 Go ?

    Go 是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。本期技术周刊一起了解 Go,欢迎大家阅读 ~文章推荐Golang 如何优雅接入多个远程配置中心? 作者:王中

  • SegmentFault 思否技术周刊 Vol.78 — Git 必看技术补给

    Git 的诞生是一个非常有趣的故事。1991年 Linus 开源了 Linux 内核,无数 Linux 爱好者在世界各地为 Linux 编写代码,那么问题来了,这些代码该如何管理呢?起初 Linus

关注公众号:拾黑(shiheibook)了解更多

赞助链接:

关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接