Home
Dirtmelon
Cancel

Swift 与指针

为什么使用指针 Swift 是一门非常安全的语言,强类型,Optinal 都是为了提高安全性所引入的,当我们对一个值为 nil 的 Optional 进行强制解包时就会触发崩溃,这是为了安全而触发的崩溃,可以防止程序有预期之外的行为。如果这里不崩溃,可能导致后续程序行为不可预期。 大多数情况下,我们在使用 Swift 时都不需要使用指针,但是在某些情况下我们不可避免地需要使用指针相关 AP...

Apple Keywords

Why 熟悉 Apple 提供的一些 Keyword ,在适当的时候使用,有助于写出更规范的接口,也可以提高代码质量。 Nullability 在 Swift 中可以使用 ? 和 ! 来显式声明一个对象是 optional 还是 non-optional ,但是 Objective-C 中没有这一行为,所有对象都默认是可以设置为 nil 的,在 Swift 与 Objective-C 混编...

Aspects

Aspects 好处都有啥 在 Objective-C 中可以使用 method swizzling 来进行 AOP 编程,可以替换掉原有方法的执行,或者在原有方法执行前后添加自己的代码。 举个最普遍的例子:我们需要统计 app 中每个 ViewController 出现的次数,需要在 viewDidAppear: 中添加统计方法,一般来说我们可能会考虑用继承,但是继承会带来以下两个问题: ...

《数据结构与算法之美》学习笔记三

计数排序、桶排序和基数排序 三种线性排序算法 计数排序、桶排序与基数排序 - BYVoid 这篇也说得比较好。 基于比较的排序有快排,插入排序和选择排序等,基于比较的排序算法是不能突破 O(nlogn) 的。 N个数有N!个可能的排列情况,也就是说基于比较的排序算法的判定树有N!个叶子结点,比较次数至少为log(N!)=O(NlogN)(斯特林公式)。 非基于比较的排序,如计数排序...

下一个十年

工作 今年十一月份的时候换了份工作,来到了大公司。为什么要换工作呢?从17年4月份加入前司到现在差不多过了两年半,所有东西都非常熟悉了,跟大家也都聊得很开,进入了一个舒适区,但是因为业务上的东西都太熟悉了,日常任务感觉上都是一些比较重复的东西。加上快到年底了,也想出去看看机会,看看自己的技术水平。刚好接到了一个比较不错的 Offer ,也想尝试一下,然后开始重新使用 Objective-C ...

《数据结构与算法之美》笔记二

递归 Recursion - LeetCode 对于重复子问题,可以使用备忘录优化。 排序 冒泡排序 原地排序,稳定的排序算法。 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来...

《数据结构与算法之美》笔记一

链表与 LRU 缓存淘汰算法 数组与链表在内存分布上的不同之处,数组需要连续的内存空间,链表则不需要。 数组与链表的性能比较: LeetCode 上也有对应的题目,146. LRU Cache 。 LRU 算法在 iOS 上的应用 YYCache 算是一例,通过双向链表结合 NSDictionary 使得增、删、改、查、清空的时间复杂度都是 O(1) 。具体实现代码在 YYMe...

URL-loading-system

原文:[URL Loading System Apple Developer Documentation](https://developer.apple.com/documentation/foundation/url_loading_system) 通过标准的互联网协议来与 URL 交流和与服务器通讯。 概览 URL Loa...

Xcode 11 与 iOS 13 适配

启动白屏 在 iOS 13 以下的版本中,如果你在 App 中替换了 window.rootViewController 那么会有一个 UITransitionView 的界面遗留在 window 上无法释放,苹果并不推荐我们在 App 运行时替换 window.rootViewController 。但是有时业务确实需要我们怎么做,比如只有登录后可以使用 App ,我们可以在登录后替换 w...

slow-motion-video

起因 有用户反馈上传慢动作视频后,视频为正常状态的视频,而不是慢动作视频,在视频列表界面中显示的视频时间长度也不正确。 打开系统相处进行查看时,显示的视频时间长度也是正常状态的视频时间长度,而不是慢动作状态下的视频时间长度,但是打开播放后就是慢动作视频。 系统提供了编辑慢动作视频的功能,可以选择慢动作区域,由此可以推测出,系统存取在相册中的是正常状态下的视频, 在播放时在通过视频的对应信息来...