sunzhongliang

好心态才有好状态

duplicate symbols解决方案

前言 duplicate symbol '_OBJC_CLASS_$_XXX', 这个错误其实含义是告诉我们在链接的时候有重复的符号,今天来看下这个问题发生的本质以及解决方案。 一个工程的源代码最终变成二进制的可执行程序、动态链接库或静态链接库要经历这么几个过程: 源代码 - [编译器] —> 汇编码 - [汇编器] —> 对象文件 - [链接器] —> 可执行程序、动态...

考核杂谈

关于考核方面的闲聊

考核的目的 考核本质上是一种过程管理,是将企业的一些中长期的目标分解成季度、月度指标,不断督促整个团队去实现、完成的一个过程,从而实现良性发展; 制定一个有效的考核标准可以帮助企业、员工向上发展,避免内卷化发展;非有效的考核标准在意义上来说就形同虚设,会让团队成员觉得阶段性的付出带来不了多少回报,年终评优如同内定 内卷化: 指的是一种社会或文化模式在某一发展阶段达到一种确定的形式后...

swift-响应式编程

响应式编程 响应式编程(Reactive Programming),简称RP,是一种面向数据流和变化传播的编程范式,可以简化异步编程,提供更优雅的数据绑定(举个不恰当的例子,有点类似于vue或者是react当中state发生变化时可以及时的更新UI)。 在swift当中比较著名成熟的框架有两个 ReactiveCocoa 官网: https://reactivecocoa.io/ ...

CocoaPods Error installing解决方案

Error installing 经常在安装cocoapods的的时候出现:Error installing xxx, 比如最常见的是spec仓库在goole上面的: 由于https://chromium.googlesource.com/ 无法访问,所以导致无法安装,一种方案是采用科学上网工具,另外其他方案则是绕开这个网站的下载 更改pod spec主仓库源 在项目的Podfi...

swift-面向协议

面向协议 面向协议(Protocol Oriented Programming, 简称POP),是swift的一种编程范式,Apple于2015年WWDC上提出,在swift的标准库中,能见到大量POP的影子,同时swift也是一门面向对象的编程语言(Object Oriented Programming, 简称OOP), 在项目开发中这两种编程规范相辅相成。 回顾OOP OOP的三大特...

swift-高阶函数

高阶函数 高阶函数(Higher-order function), 必须满足下列一个条件的函数 接收一个或多个函数作为输入 输出一个函数 其实在函数式编程当中,到处都是高阶函数,经常要拿函数作为参数,或者是函数作为返回值 柯里化(Currying) 柯里化指的是将一个接收多参数的函数变换为一系列只接收单个参数的函数 比如我们调用一个add方法时,通常是这么调用的ad...

swift-函数式编程

函数式编程 函数式编程(Funtional Programming, 简称FP)是一种编程范式,主要思想就是把计算过程尽量分解成一系列可复用函数的调用。 函数式编程传统写法 假设要实现以下功能:[(num + 3) * 5 - 1] % 10 / 2 // 自定义实现函数方法 // 加法 func add(_ v1: Int, _ v2: Int) -> Int { v1 + v2 ...

iOS应用启动优化之二进制重排

极致优化iOS启动速度

前言 如同Web页面一样,App的启动速度是给用户的第一印象,对用户的体验至关重要, 如果启动速度过慢很有可能就会造成用户流失。 传统的优化手段有减少objc的类、方法、分类(category)的数量、懒加载、划分任务优先级等等, 这些优化策略已经很普遍了,还有没有其他一些手段呢?这个时候就需要进行二进制重排了 冷启动和热启动 有时候我们在打开一个APP时感觉到慢,但把这个APP的进程...

从OC到swift

swift当中的标记 MARK 可使用MARK:对代码块进行标记说明 MARK:类似于OC当中的#pragma mark MARK: - 类似于OC当中的#pragma mark - class Person: NSObject { // MARK: - 属性 var age = 0 var weight = 0 // MARK: - 私有方法 ...

利用视错觉创建自定义控件

一个利用视错觉的自定义组件 第一次看到这个组件效果时,感觉没有什么特别之处,就是一个普通的再也普通不过的组件。可是再仔细看就感觉不一样了,一些细节处理的非常好,先来看一下运行效果吧。 看上去,感觉就是几个Button, 然后红色的是一个UIView, 点击那个Button时,就把UIView通过动画的形式移动到当前点击的Button。 但随后仔细一想,感觉还是太年轻了,这个组件实现的重点与...