首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
objective-C
订阅
用户8011522253348
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 0订阅
iOS底层原理之KVC原理分析
KVC是Key-Value Coding的简称,称为键值编码。它是NSKeyValueCoding非正式协议启用的一种机制,可以使对象通过该协议来间接访问其属性,这种间接访问机制补充了实例变量及其相关的访问器方法所提供的直接访问。 上面我们讲到了KVC一些常见的API,那么在设…
笔记-KVC的底层实现原理
程序优先调用setKey:属性值方法,代码通过setter方法完成设置。注意,这里的key是指成员变量名,首字母大小写要符合KVC的命名规范,下同 如果没有找到setName:方法,KVC机制会检查+(BOOL)accessInstanceVariablesDirectly方法…
浅谈 iOS swizzle
Method Swizzle的本质是在运行时交换方法实现(IMP),一般是在原有的方法中,插入自己的业务需求。 Objective-C的消息机制:在 Objective-C 中调用一个方法, 实际上是在底层通过 objc_msgSend()发送一个消息。 而查找消息的唯一依据是…
Objective-C 中的泛型
在 Swift 中用泛型用得很爽了, 回过头来有时候还是想要在 OC 中也用到这项技术。对 iOS 开发来说可能很多人都觉得 OC 是没有泛型的,但其实早在15年,苹果就在 OC 中引入了泛型。虽说引入泛型的目的是更好的实现 Swift 和 OC 的兼容(苹果叫它Lightwe…
iOS-多个UIScrollView滑动嵌套(仿微博、抖音、网易云个人详情页)
最近做项目遇到要实现如微博个人详情页的滑动效果,通过查找资料最终完成了GKPageScrollView,可实现如微博、抖音、网易云等个人详情页的滑动效果。 该库的实现方式参考了JXPagingView,效果可能更好更全点。 GKPageScrollView的结构为UITable…
如何优雅地解决 Objective-C 不支持方法默认参数的问题
今天突然灵光一闪,想到可以用链式表达式解决这个问题。在 iOS 开发领域因为 Masonry 这个库的影响,链式表达式知名度已经很高,因此这篇文章不再赘述其原理。直接进入主题: 如果此时想要将 ConfigB 配置为 ConfigBOne, 只需要在原有的链式表达式后面加一个 …
Objective-C语法之static关键字
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)第一个作用:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。…
iOS instancetype 和 id 区别详解
iOS instancetype 和 id 区别详解
OC底层-Class的本质
我们知道不管是类对象还是元类对象,类型都是Class,class和mete-class的底层都是objc_class结构体的指针,内存中就是结构体,本章来探寻Class的本质。 Class对象其实是一个指向objc_class结构体的指针。因此我们可以说类对象或元类对象在内存中…
Runtime源码 autoreleasepool
这里可以看到整个 iOS 的应用都是包含在一个自动释放池 block 中的。那么这个autoreleasepool到底是什么呢?接下来我们来一窥究竟。 终于看到他的结构了,总的来说,其实每一个自动释放池都是由一系列的 AutoreleasePoolPage 组成的,并且每一个 …