获得徽章 0
- #iOS知识小集#「 Objective-C 项目接入 Swift 第三方库的方法 」
目前很多最新的第三库都使用了 Swift 进行开发,且并未兼容 Objective-C。我最近在 OC 项目遇到了一个不得不使用的 Swift 第三方库,官方 issues 给出的 OC 项目引入办法是非常捉急的使用通知来获取操作结果。由于这个类库的方法较少,所以最后采用了使用 Swift 封装一个桥接类,在桥接类里将自己用到的方法、协议、变量都添加 @objc 支持 OC 使用,而这些内容的具体实现则是使用原本的 Swift 第三方库,工作量也非常小。
原理非常简单,只是一个思路的转变,并且也很好地解决了自己的问题。对于此类问题有更优雅解决办法的同学欢迎在评论区指出。展开17 - #iOS知识小集#「 如何和浮点数愉快的玩耍 」
最近遇到了一个小数的坑:1*10+3*1+1*0.1+4*0.01 你觉得这个计算出来是多少呢?难道不是13.14么?的确不是,如图1。
这是由于计算机中浮点数用二进制表示可能会丢失精度,很难准确的表示我们语义上的数值,比如说13.14。感兴趣的小伙伴可以去搜索一下相关知识。知道原理后,该如何去处理这类计算呢,如果在一些特定的场景内,只有2位小数的情况,那么可以运算前乘以100的倍数,然后再除以100,用整数去计算,可以减少误差,如图2。当其他小伙伴阅读代码的时候估计会很难理解这样的神操作,况且我们很难去预知这些浮点数的计算有多少位小数,这种情况可以使用NSDecimalNumber去计算,如图3,也可以得到我们想要的结果。
NSDecimalNumber的接口并不是很友好,我们可以写一些category或者其他扩展类让上层业务更易用。
如果有更好的玩耍方案,欢迎一起分享讨论。展开25 - What’s new in RxSwift 5
- 将 Relay 拆分成一个独立的框架 -- RxRelay
- Variable 最终被弃用
- 新增 do(on:) 重载
- bind(to:) 现在支持多个观察者
- 一个新的 compactMap 操作符
- toArray() 现在返回 Single
- 泛型约束命名整理展开评论2 - 关于 Xcode 10 New Build System,你需要了解的 5 件事评论3
- 杨帝的 BlockHook 已支持 macOS 和 iOS 平台全架构、tvOS 和 watchOS 模拟器评论4