__attribute__((aligned(16), flatten, noinline))
objc_release(id obj)
if (!obj) return;
if (obj->isTaggedPointer()) return;
return obj->release();
整理编辑:皮拉夫大王在此、我是熊大、东坡肘子
1、或许你并不需要重写 init(from:) 方法 -- 来自:kemchenj
@东坡肘子:Codable 作为 Swift 的特性之一是很注重安全,也很严谨的,这就导致了它在实际使用时总会有这样那样的磕磕绊绊,我们不得不重写 init
方法去让它跟外部环境融洽地共存。本文介绍了一种通过重载 decodeIfPresent
方法以实现应对特殊类型的思路。从某种程度上来说,作者认为这甚至是比 Objective-C 的消息机制更加灵活的一种函数声明机制,而且它的影响范围是有限的,不容易对外部模块造成破坏(别声明为 open 或者 public 就没问题)。
2、使用 Property Wrapper 为 Codable 解码设定默认值 -- 来自:onevcat
@东坡肘子:本文介绍了一个使用 Swift Codable 解码时难以设置默认值问题,并利用 Property Wrapper 给出了一种相对优雅的解决方式,来在 key 不存在时或者解码失败时,为某个属性设置默认值。这为编解码系统提供了更好的稳定性和可扩展性。最后,对 enum 类型在某些情况下是否胜任进行了简单讨论。
3、2021 年了,Swift 的 JSON-Model 转换还能有什么新花样 -- 来自知乎:非著名程序员,作者 明林清
@皮拉夫大王:本文主要介绍 ExCodable
的特性和使用方法。在文章开头先介绍了常见的 JSON 转模型的几种方式,并对这些方式各自的优缺点进行了总结,随后引出 ExCodable
的特性及使用方法。
4、json 解析有什么可说道的 -- 来自公众号:码农哈皮
@皮拉夫大王:文章开头先介绍了什么是 JSON。正文主要篇幅在介绍 SwiftyJSON 和 YYModel 的实现方案。文章最后引出了 HandyJSON,HandyJSON 是基于借助 metadata
结构来实现 JSON 转 Model 的。在这里额外提一句,如何推断 metadata
的结构,可以参考 GenMeta.cpp 中每个结构的 layout 函数。
5、Swift中Json转Model的便捷方式 -- 来自掘金:我是熊大
@我是熊大:本文介绍 JSON、Model、Data、Dict 相互转换的小技巧和代码段,适合在实际工作中使用。
6、Swift 码了个 JSON 解析器(一) -- 来自知乎:OldBirds
@我是熊大:正如作者所言,码了个 JSON 解析器,感兴趣的可以看一下。
整理编辑:Mimosa
Xcode Build Settings
地址:xcodebuildsettings.com/
顾名思义,这个网站的作用是展示 Xcode 所有的 Build Settings。你可以在这里按分类查看所有的设置项,搜索你想要的设置项,或查询某个设置项的值类型及其默认值。对于常常要和 Build Settings 打交道的开发者来说,这个网站很实用。
Data-Science-For-Beginners
地址:github.com/microsoft/D…
来自 Microsoft 的 Data Science 基础课程,为期 10 周,有 20 节课。这是一个基于项目的课程,配套 40 多个小测试,通过该课程你可以学习到关于数据科学的基础知识。每节课程还有精美的插画配图,有兴趣学习 Data Science 的朋友可以尝试一下。
整理编辑:CoderStar
wakapi
地址:wakapi.dev/
软件状态:免费,开源
软件介绍:
Wakapi
是一个开源工具,可帮助我们跟踪使用不同编程语言等在不同项目上编码所花费的时间,并使用图表等形式展现出来,支付 Xcode,值得一玩。
iOS 摸鱼周报,主要分享开发过程中遇到的经验教训、优质的博客、高质量的学习资料、实用的开发工具等。周报仓库在这里:github.com/zhangferry/… ,如果你有好的的内容推荐可以通过 issue 的方式进行提交。另外也可以申请成为我们的常驻编辑,一起维护这份周报。另可关注公众号:iOS成长之路,后台点击进群交流,联系我们,获取更多内容。
iOS摸鱼周报 第二十九期
iOS摸鱼周报 第二十八期
iOS摸鱼周报 第二十七期
iOS摸鱼周报 第二十六期