首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
苏大盒子
掘友等级
专找茬的架构师
|
ByteDance
代码找茬我最在行
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
赞
42
文章 42
沸点 0
赞
42
返回
|
搜索文章
文章
热门
最新
Swift 与函数式编程
本文是一篇学习函数式编程的笔记,并非完全原创,很大一部分的内容来自于文末提及的博客和书籍。 2020 年的今天,函数式编程已经不是一个陌生的名词了,尽管如此,头条平时开发当中所写的代码,95%(可能更高)比例的代码,用的还是另外一种编程范式(paradigms)----命令式编…
如何优雅地解决 Objective-C 不支持方法默认参数的问题
今天突然灵光一闪,想到可以用链式表达式解决这个问题。在 iOS 开发领域因为 Masonry 这个库的影响,链式表达式知名度已经很高,因此这篇文章不再赘述其原理。直接进入主题: 如果此时想要将 ConfigB 配置为 ConfigBOne, 只需要在原有的链式表达式后面加一个 …
VIPER 和 MVVM 到底有什么区别
如果你开发过移动端App,那你肯定听说过 MVVM 和 VIPER. 虽然有观点说MVVM的扩展性不够好,也有观点说VIPER是个过度设计的产物。而我在这里想说的是,它俩非常接近,甚至我们都没有必要去把它俩分开对待。 先来快速地过一遍 MVVM 和 VIPER. View将用户…
Swift 项目的模块化
这篇博客是对最近在新启动的公司Swift为基础语言的项目中,对于整个项目架构的一些尝试的整理。 Swift是一门静态的强类型语言,虽然可以在Cocoa框架下开发可以使用Objective-C的Runtime,但在我看来,既然选用了全新理念的语言,就应该遵循这种语言的规则来思考问…
关于AppDelegate瘦身的多种解决方案
在iOS项目的开发中,AppDelegate是一个耦合发生的重灾地,很多项目的开发时间一长,AppDelegate就不可避免地出现,代码臃肿,调用顺序混乱,逻辑复杂的问题。这个UIApplication的委托类,作为一个常驻内存的单例,它承载了太多太多的功能,连苹果的官方文档都…
XCode8 下最简单的自动集成打包脚本
公司已经有一个CI平台,但是由于CI上生成的安装包是用企业证书,有一些和证书相关的功能无法测试(push,微博sdk等),所以经常需要手动生成一个develoment的安装包,实在是有点麻烦。捣鼓了几个小时,发现其实不需要配置复杂的jenkins,了解一点最简单的命令行,就能打…
Protocol Buffers 在 iOS 中的使用
对大多数的应用来说,后台服务、传输和存储数据都是个重要的模块。开发者在给一个 web service 写接口时,通常使用 JSON 或者 XML 来发送和接收数据,然后根据这些数据生成结构并解析。 尽管有大量的 API 和框架帮助我们序列化和反序列化,来支持一些后台接口开发的日…
记录最近业务中出现的两个问题
两个问题都出现在iOS 9上,用户比例大概是在10%左右,还是占了比较大的比例,但我们平时开发所使用的测试机和模拟器都是iOS 10,同时这两个问题出现的场景需要较多的条件,于是问题就这么漏过去了。 1.TTTAttributedLabel的text中包含emoji会引发内存溢…
Objective-C中对注册式单例模式(Register of Singletons)的简单实现
单例模式所有人都不陌生,在一些业务场景下,需要继承某个单例的子类实现一些额外的逻辑,这时候可以利用注册式的方式来实现单例。 需要注意的是,需要使用子类来第一次初始化单例。 可以在子类load方法中来初始化单例,以保证即使以父类类名去调用获取的也是子类的实例。
为什么使用枚举作为配置项(enum as configuration)是反开发模式的
我经常看到有 Objective-C(偶尔也有 Swift)的设计中用到一种模式:使用枚举类型(enum)作为一个类的配置项。比方说,传递一个enum给UIView来确定一个显示的样式。在这篇文章里,我会解释为什么我认为这种做法是反设计模式的,并且我会给出一个更强健、模块化,扩…
下一页
个人成就
文章被点赞
272
文章被阅读
39,985
掘力值
954
关注了
3
关注者
144
收藏集
1
关注标签
6
加入于
2017-11-04