今天无意这中遇到一个奇怪的崩溃,先上引起崩溃的代码: 当执行到dealloc的时候,程序就crash 掉了。崩溃信息如下: 其中,可以在控制台明确看到这样一段描述: objc...
今天无意这中遇到一个奇怪的崩溃,先上引起崩溃的代码: 当执行到dealloc的时候,程序就crash 掉了。崩溃信息如下: 其中,可以在控制台明确看到这样一段描述: objc...
前言 在上一篇文章是的时候,objc_setProperty方法的实现并没有体现strong和weak这两个修饰词,所以这两个修饰词是有另外的实现,而且是在上已层实现的;co...
前言 进入 iOS 开发一年多,大部分时间都在写业务代码,鲜有对优秀开源代码的学习、总结。深知,是时候开始学习一些。万事开头难,所以我准备从比较简短的开源代码开始学习。第一篇...
GitHub 地址 1.获取 NSObject 对象占用的空间 创建一个 NSObject 对象, 分别调用 class_getInstanceSize 和 malloc_s...
1.回顾之前 前面我们讲过alloc的一些底层探索中,在分配内存的时候有涉及到内存对齐的概念。instanceSize()中alignedInstanceSize()内存...
前言 提到iOS的内存泄漏检测,第一个想到的应该就是Instruments的Leaks检测模版。不过使用过的人一般都会觉得这个检测不准确,有时候明明泄露了,但是它却检测不出来...
像NSArray,NSSet,NSDictionary是平时常用的数据类型,今天想说的是另外两个比较高阶的集合NSHashTable和NSMapTable。 NSHashTa...
RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念。 网上已经有很多源码分析和具体Demo的研究。 写这篇文章的目的是把目前网上能够找到的文章进行一个整体梳理。...
文章的由来: 偶然在一次想要判断当前控制器是通过present模态推出还是通过push入栈显示的时候注意到了presentingViewController和presente...
inline 在iOS中的一些框架中,static inline是经常出现的关键字组合. static自不用多说,表示在当前文件中应用,如 static A, 在其它文件中也...
一、CFMutableDictionaryRef的使用 最近在看YYModel的源码,发现其中多次使用了CFMutableDictionaryRef来对类相关信息进行缓存。为...
GNUstep KVC/KVO探索(一):KVC的内部实现GNUstep KVC/KVO探索(二):KVO的内部实现 概述 KVO全称KeyValueObserving,是苹...
前言 Category能否添加成员变量?如果可以,如何给Category添加成员变量?答:不能直接添加成员变量,但是可以通过runtime的方式间接实现添加成员变量的效果。 ...
引子 apple 的《Transitioning to ARC Release Notes》一文里,其中一小节"ARC Introduces New Lifetime Qua...
本文是Advanced Apple Debugging的学习笔记.首先将Xcode升级到8.3版本.可以通过下载地址下载.我们主要是通过LLDB,Python和DTrace来...
关于 Runtime ,网上已经有很多很好的文章,写得很详尽。本篇主要是从新手的角度出发,逐步介绍 Runtime 的原理、常用方法、应用场景等。 一、Runtime 是什么...
写在前面 当在10亿数据进行不到30次比较就能查找到目标时,不禁感叹编程之魅力!人类之伟大呀! —— 学红黑树有感。 终于,在学习了几天的红黑树相关的知识后,我想把我所学所想...
本文首发于我的个人博客:「程序员充电站」[https://itcharge.cn]文章链接:「传送门」[https://itcharge.cn/ios-complete-le...
_MARK
iOS Runtime详解Runtime的特性主要是消息(方法)传递,如果消息(方法)在对象中找不到,就进行转发,具体怎么实现的呢。我们从下面几个方面探寻Runtime的实现机制。 Runtime介绍...
Runtime的特性主要是消息(方法)传递,如果消息(方法)在对象中找不到,就进行转发,具体怎么实现的呢。我们从下面几个方面探寻Runtime的实现机制。 Runtime介绍...