首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Swift
订阅
用户5852958855059
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
Swift:解包的正确姿势
在掘金里面看见iOS各路大神各种底层与runtime,看得就算工作了好几年的我也一脸蒙圈,于是只好从简单的入手。 文章最初发布在简书上面,有段时间了,考虑以后大部分时间都会在掘金学习,于是把文章搬过来了。稍微做了点润色与排版。 对于Swift学习而言,可选类型Optional是…
探索Swift中Array的底层实现
很显然,从定义上来看,Array是一个struct类型,那也就是值类型了。 在Array中真的只有一个属性_buffer,_buffer在_runtime(_ObjC)下是_ArrayBuffer,否则是_ContiguousArrayBuffer。在苹果的设备下应该都是兼容O…
Swift 协议(Protocols译文)
协议是为类、结构和枚举定义的方法、属性和其它需求的蓝图,可以通过扩展实现协议或是通过扩展添加额外的功能。语法协议属性任何实现协议的类型,都需要为协议提供带有名称和类型的实例属性或类型属性,并限定读写权
Swift 范型(Generics译文)
范型是对参数的类型参数化的一种机制。使用范型可以写出高度灵活、可重用的函数与类型。范型函数代码冗余考虑下面代码块: swapTwo*函数使用in-out参数,可参考In-OutParameters ,
Swift 利器 - Protocols 和 Extensions
今天要聊的是 Swift 中我比较喜欢的特性之一:Protocols and Protocol Extensions。它能帮助我们在 无需继承 的前提下,创建高复用性、可随意组合的代码库。 我们都知道面向对象编程的三大特性:封装、继承、多态,有了 Swift 的 Protoco…
[译] iOS 里的 MVVM 和 RxSwift
在本文中,我将介绍 iOS 编程中的 MVVM 设计模式以及 RxSwift。本文分为两部分,第一部分简要介绍了设计模式和 RxSwift 的基础知识,而在 第二部分 里,有一个实现了 MVVM 和 RxSwift 的示例项目。 首先,我们为什么要使用设计模式呢?简而言之,就是…
Swift5.1-错误处理
Swift 可以通过Error协议自定义运行时的错误信息。 函数内部通过throw抛出自定义Error,可能会抛出Error的函数必须加上throws声明。 需要使用try调用可能抛出错误的函数。 可以使用do-catch捕获Error, 抛出Error后, try下一句直到作…
Swift5.1 - 高级运算符
Swift 的算数运算符出现溢出时会抛出运行时错误。 Swift有溢出运算符(&-、 &+、&*), 用来支持溢出。(转圈圈) 类、结构体、枚举可以为现有的运算符提供自定义的实现,这个操作叫做:运算符重载。 要得知两个实例是否等价,一般做法是遵守E…
Swift5.1 - 扩展(Extension)
扩展可以分为枚举、结构体、类、协议添加新功能。 可以添加方法、计算属性、下标、便捷初始化器、嵌套类型、协议等等。 不能覆盖原有的功能。 不能添加存储属性,不能向已有属性添加属性观察器。 不能添加父类。 不能添加指定初始化器,不能添加反初始化器(deinit)。 如果希望自定义初…