首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS
订阅
i_shall
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
MVC、MVP和MVVM模式之间的区别与联系
Presenter与具体的View是没有直接关联的,而是通过定义好的接口进行交互,从而使得在变更View时候可以保持Presenter的不变,这样就可以重用。不仅如此,还可以编写测试用的View,模拟用户的各种操作,从而实现对Presenter的测试,从而不需要使用自动化的测试…
iOS老司机的网络相关Tips
前言: 作为一个有自我修养的iOS工程师, 对网络的理解体现在开发中的方方面面 iOS开发中的网络相关基操Tips
深入浅出 GCD 之 dispatch_source
Dispatch Source是BSD系统内核惯有功能kqueue的包装,kqueue是在XNU内核中发生各种事件时,在应用程序编程方执行处理的技术。它的CPU负荷非常小,尽量不占用资源。
从源码解析 Swift 弱引用
由于 Swift 源码量较大,强烈建议大家把 repo clone 下来,结合源码一起来看这篇文章。 Swift 整个工程采用了 CMake 作为构建工具,如果你想用 Xcode 来打开的话需要先安装 LLVM,然后用 cmake -G 生成 Xcode 项目。 我们这里只是进…
KVO实现原理
KVO是为了监听一个对象的某个属性值是否发生变化。在属性值发生变化的时候,肯定会调用其setter方法。所以KVO的本质就是监听对象有没有调用被监听属性对应的setter方法 我们根据结果看到,在添加KVO观察者之后p1的类对象由Person变成了NSKVONotifying_…
深入理解iOS的block
在文章之前,先抛出如下问题。 如果现在不是很熟悉,希望看完这篇文章,能有个新的认识。 先介绍一下什么是闭包。在 wikipedia 上,闭包的定义是 block 实际上就是 Objective-C 语言对于闭包的实现。 如图所示,age是直接值传递,height传递的是*hei…
多层 UIScrollView 嵌套滚动解决方案
本文旨在对于SegementSlide库实现原理的讲解,有兴趣的同学,欢迎前往Github地址浏览。 如今的app中,越来越多地采用如下图所示的设计,一般用在诸如『用户主页』、『话题详情页』、『专题详情页』等这些场景。通常,这些场景会带有头部视图(头部视图可能要求支持滚动渐变)…
UIView.transform的高级玩法
最近在重构之前上架的一款画板应用,期间用到了一些UIView的transform相关的特性。借此机会也系统整理了一下transform相关的知识。 在进入正题之前需要补充一点线性代数(数学专业应该叫高等代数)相关的知识。 所谓齐次坐标系就是将一个原本是n维的向量用一个n+1维向…