首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JiandanDream
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
2
文章 2
沸点 0
赞
2
返回
|
搜索文章
最新
热门
Objc StripedMap 优化加锁缓存
对于加了锁的缓存,StripedMap 可以起到提高访问速度的作用。 典型应用场景: SideTable。 从注释中可以了解到,它可用来优化加了锁的缓存。 笔者觉得可将其看成是缓存的「管理者」。 加了锁的缓存,访问速度会相应地变慢,尤其在并发量大的情况下。 直接多几个缓存,使用…
温故而知新-ObjC weak
本文主要记录 ObjC weak 原理。 存储 weak 关系的数据结构为散列表,结构为 hash(&obj) : [&p1, &p2, ...]。 weak 变量,在指向的对象被销毁时,该变量会被置为 nil。 「使用」 __weak 修饰的变量…
温故而知新-ObjC Runtime 方法缓存
ObjC Runtime 的消息传递过程中,会使用方法缓存提高效率。 每个类有一个方法缓存,而不是每个对象都有一个缓存。 方法缓存是一个散列表。 若调用的是父类的方法,也会添加到本类的缓存里。 先简单回顾下。 Runtime System 会创建一个 NSInvocaton 对…
温故而知新-iOS事件响应链
用一句话概括响应链过程:先寻找第一响应者,若它无法处理该事件,则传递给下一响应者。 当一个触摸事件生成时,系统会将其加入到 UIApplication 管理的事件队列中。 UIApplication 会取出队列最前面事件,分发给合适的 Window。 Window 会在当前视图…
温故而知新-ObjC Block
Block 又称为匿名函数,本质是一个 ObjC 对象,其结构体里会有一个指针指向具体的函数实现。 它有 3 种类型,分别存储在静态数据区、栈区、堆区。 截获的变量会直接拷贝到 Block 结构体里,或捕捞其指针。 一般可使用 weak 和 __block 修饰符来解决循环引用…
关于 Method Swizzling 的一点思考
查找资料后,给出以下回答。 根据对象的 isa 指针,找到类。 在类的 objc_cache 和 method_list 中,根据 method name 寻找对应方法。 若没有找到,则在其父类中寻找,直到 NSObject。 结合 runtime 代码(简化后),理解上述过程…
GitHub Pages 搭建博客
如果只是搭建简单的个人博客,Github Pages 绝对是值得尝试的方案,它提供了静态网站代码的托管服务。 而 Hexo 或 Jekyll 这类静态博客生成工具,可以生成静态代码。 借助以上工具,作者只需要专注于写作,其他工作由它们完成。 笔者采用了 Hexo,结合 NexT…
Objective-C 内存管理
本文是阅读 Advanced Memory Management Programming Guide 的笔记。 主要内容是关于手动管理内存的规则。 目前 Xcode 默认使用 ARC ,而在 ARC 环境下,很多工作,编译器已经帮忙完成了。 而要真正了解内存管理规则,还得追根溯…
Objective-C自动引用计数ARC
这篇文章是阅读 Transitioning to ARC Release Notes 的笔记。 主要内容是关于 ARC 的规则。 Automatic Reference Counting(ARC) 作为一个编译工具,自动管理 Objective-C 对象。 简单地说,就是不再需…
iOS 使用 NSCharacterSet encode URL
当使用 GET 方式进行网络通信时,参数会作为 URL 的一部分,此时需要对 URL 进行 Percent-Encoding,即把一些字符转换成百分号形式,如空格用 %20 代替。 先从 iOS SDK 中找起,在 NSURL.h 中找到了 URLHostAllowedChar…
下一页
个人成就
文章被点赞
48
文章被阅读
35,207
掘力值
851
关注了
12
关注者
21
收藏集
0
关注标签
4
加入于
2018-03-29