Home
Dirtmelon
Cancel

2018-09-ReadingList

Swift 4 泛型:如何在你的代码或App里应用泛型 如何在 Swift 中应用泛型,比较基础。 Swift 中的属性 Swift 属性相关说明,一些属性相关的基础用法。 Defer usage in Swift defer 在 swift 中的运行机制,defer 的执行顺序是按照声明顺序倒序执行,介绍了几个在 swift 中使用 defer 的场景,可以预先设定在函数完成后需要执行...

2017

工作 2017年在工作上的变动较大,3月初从原来的公司离职,到找了一个月都没有找到工作,到4月份的时候来到现在的一个创业公司。也差不多有一年的时间了。 工作方式 工作方式变化较大。原来的公司属于半国企那种性质,需求变化也不大,下班也基本上都不会找你聊工作的事,我觉得可能是因为大家可能对产品都不大在乎,做出来就行了。现在几乎将工作和生活完全融合在一起了。一般大家发现什么bug或者有什么需求都...

Texture 开发笔记

ASImageNode ASImageNode 不支持直接设置 tintColor ,如果需要设置 tintColor需要通过 imageModificationBlock 进行设置: imageNode.imageModificationBlock = ASImageNodeTintColorModificationBlock(UIColor.white) github上的相关讨论: h...

PhotoKit 与 iCloud 图片

起因 公司的 app 在前段时间的改版中,需要自定义一个相册界面,调研了一轮开源控件,感觉没有找到比较满意的,就尝试自己写了一个,用了 PhotoKit。基本上用下来也没多大问题。 但是在处理iCloud图片的时候遇到了一个小问题。如果用户开启了优化 iPhone 存储空间,或者未加载好,PhotoKit 是会先拿到这些图片的缩略图,一般来说在相册列表显示多张图片时,为了防止占用内存过多...

《Swift进阶》阅读笔记 - 可选值

哨岗值 当返回一个“魔法数”来表示函数没有返回真实的值,这样的值称为“哨岗值”。哨岗值很容易产生问题,因为可能忘记检查哨岗值,并且不小心使用了它们。 通过枚举解决魔法数的问题 enum Optional<Wrapped> { case none case some(wrapped) } 获取关联值的唯一方法是使用 switch 或者 if case 语句...

《Swift进阶》阅读笔记 - 集合类型

数组 高阶函数 实现map函数,把for循环中的代码模版部分用一个泛型函数封装起来。下面是可能的实现方式: extension Array { func map<T>(_ transform: (Element) -> T) -> [T] { var result: [T] = [] result.reserveCapacit...

为什么使用 RxSwift

原文链接:Why RxSwift支持以声明的方式来构建App。 Bindings Observable.combineLatest(firstName.rx.text, lastName.rx.text) { $0 + " " + $1 } .map { "Greetings, \($0)" } .bindTo(greetingLabel.rx.text) 也适用于...

2016

总结 差不多是时候开始新的一年了。没有写过年终总结之类的东西,一直都懒得总结。但是看到前面的一篇说希望以后能多写点东西,那就写一下吧。 今年是作为iOS开发者完整渡过的第一年。年初开始的时候是负责写APM类的SDK,其实一开始是有点抗拒的,因为涉及的大多是底层的东西,比较枯燥。后来写着写着发现其实也挺不错的,可以学到很多有趣的东西。再后来发现这其实是个KPI产物,挺无奈的。8月份的时候由于...

图片资源的管理方式

在开发app的过程中少不了要加载app内的图片资源,最简单的写法就是 let image = UIImage(named: "image")! 我们并不希望在加载app内图片过程中出错,所以都会进行强制解析。但是这样写多了会很乱,有可能会拼错,图片资源删除了也要一个个去修改,也不会在编译时就报错。有可能上线了才发现缺失图片资源。 静态属性方式 Yep中采取扩展的方法来处理。 extens...

网速才是第一生产力

从 Farbox 转到 Github Pages 了,希望以后可以多写点东西。