跳转到主要内容

#Objective-C

103 篇相关内容,包含原创文章与译文资源。

原创文章

【iOS】Runtime - Part 1 && 对象与类的本质

从 objc_object、isa_t、Tagged Pointer、对象内存布局一路拆到类与对象的本质,梳理 Objective-C Runtime 中对象如何关联到类。

原创文章

【iOS】Runtime - Part 3 && Category:加载、覆盖与关联对象

承接对象/类结构与消息发送机制,梳理 Category 的编译产物、运行时加载、方法列表附加、同名方法覆盖现象、+load/+initialize 差异与关联对象原理。

原创文章

【iOS】block

block 对应结构体的定义如下: 图中我们可以看到,isa其实有六个部分 isa指针,所以对象都有isa指针。这就证明了 block其实本质上就是一个Objective C对象 ,他的值通常是这三种 NSConcreteGlobalBlock (全局区:没捕获任何外部变量) N

原创文章

【iOS】Effective Objective-C 熟悉Oc

熟悉Objective C 了解Objective C语言的起源 1. 使用消息结构的语言,其运行时所执行的代码由运行环境决定,使用函数调用的语言,则由编译器决定 详细说说: 在C语言中,编译器在编译阶段或链接阶段就已经知道了函数在内存中的地址(或相对偏移量),他生成的汇编指令是

原创文章

【iOS】KVO

In order to understand key value observing, you must first understand key value coding. KVC是键值编码 ,在对象创建完成后,可以 动态的给对象属性赋值 ,而 KVO是键值观察 ,提供了一种监

原创文章

【iOS】alloc、init、new

1. alloc 进入到alloc的源码里面,我们发现alloc调用了 objc rootAlloc方法,而 objc rootAlloc调用了callAlloc方法。 具体内容本人暂时也一知半解,贴一张图 alloc为我们创建了1个对象并申请了一块不小于16字节的内存空间 具体

原创文章

【iOS】KVC总结

什么是KVC KVC 的全称是Key Value Coding(键值编码),是由NSKeyValueCoding非正式协议启用的一种机制,对象采用这种机制来提供对其属性的间接访问,可以通过字符串来访问一个对象的成员变量或其关联的存取方法(getter or setter)。 通常

原创文章

【iOS】对象复制与属性关键字

目录 对象复制 一、copy与mutableCopy方法 二、NSCopying和NSmutableCopying协议 三、深复制与浅复制 按照类型说明: 非容器类对象的深拷贝与浅拷贝 不可变字符串 可变类型字符串 容器类对象的深浅拷贝 自定义类型的拷贝 容器类对象的深拷贝 归档

原创文章

【iOS】OC语言学习——Foundation框架回顾及考核补缺

目录 和点语法区别: 属性关键字 Foundation框架 数组(NSArray和NSMutableArray) 对几何元素的整体调用方法 排序 使用枚举器遍历元素 可变数组 集合(NSSet与NSMutableSet) NSMutableSet NSCountedSet的用法

原创文章

【iOS】OC语言学习 —— 重点内容总结与拓展(上)

目录 隐藏和封装 访问控制符 理解@package访问控制符 对象初始化 一、为对象分配空间 二、初始化方法与对象初始化 OC属性及属性关键字 类、元类、父类的关系 isKindOfClass && isMemberOfClass 关键字 单例模式 基本创建 使用dispatch

原创文章

【iOS】Oc语言学习 —— 重点内容总结与拓展(下)

目录 类别(分类)和拓展 三种字符串的管理方式 NSCFConstantString Constant 常量 NSCFString NSTaggedPointerString 三种字符串类型的copy/ mutablecopy / retainCount情况 内存分布补充 NSC

原创文章

【iOS】OC语言学习——面向对象(下)

目录 一、OC的包装类 1.1 以下不是包装类: 1.2 以下是包装类: 二、处理对象 2.1 处理对象和description方法 一、NSLog(@"%@", obj) 做了什么? 二、默认行为 三、如何自定义打印内容? 输出: 四、打印集合对象(NSArray、NSDict

原创文章

【iOS】OC的实例对象,类对象,元类对象

OC的实例对象,类对象,元类对象 在 Objective C 中,一切都是对象 —— 包括“类”本身。它背后的运行机制依赖于一个强大的 元类(metaclass)系统 。 实例对象 类对象 元类对象 是 Objective C Runtime 的三种核心对象,它们构成了类与对象的

原创文章

【iOS】Objective - C初探之面向对象

面向对象与面向过程设计思想 面向过程 是以过程(步骤)为中心的编程方式。 把一件要做的事,从头到尾, 按照步骤拆成一系列操作 ,一步步完成。 重点是 怎么做,顺序是什么 面向过程的特点 注重 流程控制 (先做什么、后做什么) 编程思维是: “先干这个,再干那个” 主要用 函数 组

原创文章

【iOS】Oc语言学习 —— Foundation框架总结

1、NSString类 我们对一个NSString对象赋值的方法是直接将字符串常量赋给对象,例如: NSString str = @"hello"; 因为我们的NSString是不可变的,所以我们只能通过一些方法来在我们原来的字符串后面追加或初始化我们的字符串来间接修改我们的对象

原创文章

【iOS】NSString的三种实现方式

oc里的NSString有三种实现方式,为 NSCFConstantString、 NSCFString、NSTaggedPointerString 1. NSCFConstantString(字面量字符串) 从字面意思上可以看出, NSCFContantString可以理解为常

原创文章

【iOS】OC语言学习——Foundation框架(下)

四、Objective — C 集合表述 OC集合类可以用于存储数量不等的多个对象,并且可以实现常用的数据结构,例如栈和队列等,除此以外,OC集合还可以用来保存具有映射关系的关联数组。 OC的集合大致上可以分为三种体系: NSArray 代表有序、可重复的集合,很像一个数组 NS

原创文章

【iOS】OC语言学习——Foundation框架(上)

一、字符串 NSString代表字符序列不可变的字符串,而NSMutable代表字符序列可变的字符串。 1.1 NSString字符串及功能 通过NSString,我们可以: 1、创建字符串。2、读取文件或网络URL来初始化字符串,或者将字符串写入文件或URL。3、获取字符串长度

译文资源

Objective-C 内部机制:Release

Always Processing 中文译文:Objective-C 内部机制:Release(原文:Objective-C Internals: Release)

译文资源

Objective-C 内部机制:Retain

Always Processing 中文译文:Objective-C 内部机制:Retain(原文:Objective-C Internals: Retain)

译文资源

Objective-C 内部机制:关联引用

Always Processing 中文译文:Objective-C 内部机制:关联引用(原文:Objective-C Internals: Associated References)

译文资源

Objective-C 内部机制:Tagged Pointer 对象

Always Processing 中文译文:Objective-C 内部机制:Tagged Pointer 对象(原文:Objective-C Internals: Tagged Pointer Objects)

译文资源

Objective-C 内部机制:非脆弱实例变量

Always Processing 中文译文:Objective-C 内部机制:非脆弱实例变量(原文:Objective-C Internals: Non-Fragile Instance Variables)

译文资源

Objective-C 内部机制:未实现类与 Toll-Free Bridging

Always Processing 中文译文:Objective-C 内部机制:未实现类与 Toll-Free Bridging(原文:Objective-C Internals: Unrealized Classes (and Toll-Free Bridging))

译文资源

Objective-C 内部机制:isa 的多重用途

Always Processing 中文译文:Objective-C 内部机制:isa 的多重用途(原文:Objective-C Internals: The Many Uses of isa)

译文资源

Objective-C 内部机制:类图实现

Always Processing 中文译文:Objective-C 内部机制:类图实现(原文:Objective-C Internals: Class Graph Implementation)

译文资源

Objective-C 内部机制:类架构

Always Processing 中文译文:Objective-C 内部机制:类架构(原文:Objective-C Internals: Class Architecture)

译文资源

锁、线程安全与 Swift(2017 版)

Mike Ash Friday Q&A 中文译文:锁、线程安全与 Swift(2017 版)

译文资源

剖析 ARM64 上的 objc_msgSend

Mike Ash Friday Q&A 中文译文:剖析 ARM64 上的 objc_msgSend

译文资源

动手实现 dispatch_queue

Mike Ash Friday Q&A 中文译文:动手实现 dispatch_queue

译文资源

Tagged Pointer 字符串

Mike Ash Friday Q&A 中文译文:Tagged Pointer 字符串

译文资源

Objective-C 运行时中的并发内存释放

Mike Ash Friday Q&A 中文译文:Objective-C 运行时中的并发内存释放

译文资源

动手实现 @synchronized

Mike Ash Friday Q&A 中文译文:动手实现 @synchronized

译文资源

锁、线程安全与 Swift

Mike Ash Friday Q&A 中文译文:锁、线程安全与 Swift

译文资源

动手实现 NSZombie

Mike Ash Friday Q&A 中文译文:动手实现 NSZombie

译文资源

dispatch_once 的秘密

Mike Ash Friday Q&A 中文译文:dispatch_once 的秘密

译文资源

受 Heartbleed 启发的偏执内存分配器

Mike Ash Friday Q&A 中文译文:受 Heartbleed 启发的偏执内存分配器

译文资源

当 autorelease 并非 autorelease 时

Mike Ash Friday Q&A 中文译文:当 autorelease 并非 autorelease 时

译文资源

NSObject 类与协议

Mike Ash Friday Q&A 中文译文:NSObject 类与协议

译文资源

为什么寄存器快而内存慢

Mike Ash Friday Q&A 中文译文:为什么寄存器快而内存慢

译文资源

ARM64 与你

Mike Ash Friday Q&A 中文译文:ARM64 与你

译文资源

动手实现 Dispatch Group

Mike Ash Friday Q&A 中文译文:动手实现 Dispatch Group

译文资源

C 语言小测验

Mike Ash Friday Q&A 中文译文:C 语言小测验

译文资源

动手实现 NSInvocation(下)

Mike Ash Friday Q&A 中文译文:动手实现 NSInvocation(下)

译文资源

动手实现 NSInvocation(上)

Mike Ash Friday Q&A 中文译文:动手实现 NSInvocation(上)

译文资源

动手实现 KVC 键值编码

Mike Ash Friday Q&A 中文译文:动手实现 KVC 键值编码

译文资源

动手实现 NSObject

Mike Ash Friday Q&A 中文译文:动手实现 NSObject

译文资源

Mach 异常处理器

Mike Ash Friday Q&A 中文译文:Mach 异常处理器

译文资源

读取一字节内存时发生了什么

Mike Ash Friday Q&A 中文译文:读取一字节内存时发生了什么

译文资源

Objective-C 常见陷阱

Mike Ash Friday Q&A 中文译文:Objective-C 常见陷阱

译文资源

动手构建 Mach-O 可执行文件

Mike Ash Friday Q&A 中文译文:动手构建 Mach-O 可执行文件

译文资源

动手实现 objc_msgSend

Mike Ash Friday Q&A 中文译文:动手实现 objc_msgSend

译文资源

dyld:OS X 上的动态链接

Mike Ash Friday Q&A 中文译文:dyld:OS X 上的动态链接

译文资源

那些你从不想知道的 C 语言冷知识

Mike Ash Friday Q&A 中文译文:那些你从不想知道的 C 语言冷知识

译文资源

动手实现 Tagged Pointer

Mike Ash Friday Q&A 中文译文:动手实现 Tagged Pointer

译文资源

动手实现 NSNumber

Mike Ash Friday Q&A 中文译文:动手实现 NSNumber

译文资源

Objective-C 字面量语法

Mike Ash Friday Q&A 中文译文:Objective-C 字面量语法

译文资源

PLWeakCompatibility 源码导览(下)

Mike Ash Friday Q&A 中文译文:PLWeakCompatibility 源码导览(下)

译文资源

PLWeakCompatibility 源码导览(上)

Mike Ash Friday Q&A 中文译文:PLWeakCompatibility 源码导览(上)

译文资源

Nib 的内存管理

Mike Ash Friday Q&A 中文译文:Nib 的内存管理

译文资源

正确实现 KVO(第二版)

Mike Ash Friday Q&A 中文译文:正确实现 KVO(第二版)

译文资源

环形缓冲区与镜像内存(下)

Mike Ash Friday Q&A 中文译文:环形缓冲区与镜像内存(下)

译文资源

环形缓冲区与镜像内存(上)

Mike Ash Friday Q&A 中文译文:环形缓冲区与镜像内存(上)

译文资源

fork 安全

Mike Ash Friday Q&A 中文译文:fork 安全

译文资源

反汇编剖析(三)ARM 篇

Mike Ash Friday Q&A 中文译文:反汇编剖析(三)ARM 篇

译文资源

反汇编剖析(二)

Mike Ash Friday Q&A 中文译文:反汇编剖析(二)

译文资源

反汇编剖析(一)

Mike Ash Friday Q&A 中文译文:反汇编剖析(一)

译文资源

构建带记忆化的 Block 代理

Mike Ash Friday Q&A 中文译文:构建带记忆化的 Block 代理

译文资源

通用 Block 代理

Mike Ash Friday Q&A 中文译文:通用 Block 代理

译文资源

GCD 的新特性

Mike Ash Friday Q&A 中文译文:GCD 的新特性

译文资源

自动引用计数 ARC 详解

Mike Ash Friday Q&A 中文译文:自动引用计数 ARC 详解

译文资源

动手实现引用计数

Mike Ash Friday Q&A 中文译文:动手实现引用计数

译文资源

动手实现 NSAutoreleasePool

Mike Ash Friday Q&A 中文译文:动手实现 NSAutoreleasePool

译文资源

方法签名不匹配问题

Mike Ash Friday Q&A 中文译文:方法签名不匹配问题

译文资源

Objective-C Block 对决 C++0x Lambda

Mike Ash Friday Q&A 中文译文:Objective-C Block 对决 C++0x Lambda

译文资源

Zombie 对象的内部原理

Mike Ash Friday Q&A 中文译文:Zombie 对象的内部原理

译文资源

MABlockClosure 源码导览

Mike Ash Friday Q&A 中文译文:MABlockClosure 源码导览

译文资源

信号处理

Mike Ash Friday Q&A 中文译文:信号处理

译文资源

OSAtomic 原子操作导览

Mike Ash Friday Q&A 中文译文:OSAtomic 原子操作导览

译文资源

复合字面量

Mike Ash Friday Q&A 中文译文:复合字面量

译文资源

实用浮点数知识

Mike Ash Friday Q&A 中文译文:实用浮点数知识

译文资源

自定义对象内存分配器

Mike Ash Friday Q&A 中文译文:自定义对象内存分配器

译文资源

访问器、内存管理与线程安全

Mike Ash Friday Q&A 中文译文:访问器、内存管理与线程安全

译文资源

运行时动态创建类

Mike Ash Friday Q&A 中文译文:运行时动态创建类

译文资源

对 CoreFoundation 对象的自动置空弱引用

Mike Ash Friday Q&A 中文译文:对 CoreFoundation 对象的自动置空弱引用

译文资源

自动置空的弱引用

Mike Ash Friday Q&A 中文译文:自动置空的弱引用

译文资源

实现相等性判断与哈希

Mike Ash Friday Q&A 中文译文:实现相等性判断与哈希

译文资源

处理循环引用 Retain Cycle

Mike Ash Friday Q&A 中文译文:处理循环引用 Retain Cycle

译文资源

实现快速枚举 Fast Enumeration

Mike Ash Friday Q&A 中文译文:实现快速枚举 Fast Enumeration

译文资源

Objective-C 各种遍历方式对比

Mike Ash Friday Q&A 中文译文:Objective-C 各种遍历方式对比

译文资源

方法替换(Method Swizzling)实战

Mike Ash Friday Q&A 中文译文:方法替换(Method Swizzling)实战

译文资源

Objective-C 中的栈对象与堆对象

Mike Ash Friday Q&A 中文译文:Objective-C 中的栈对象与堆对象

译文资源

GCD 实战演练

Mike Ash Friday Q&A 中文译文:GCD 实战演练

译文资源

GCD 入门(四)杂项补遗

Mike Ash Friday Q&A 中文译文:GCD 入门(四)杂项补遗

译文资源

GCD 入门(三)Dispatch Source

Mike Ash Friday Q&A 中文译文:GCD 入门(三)Dispatch Source

译文资源

GCD 入门(二)多核性能

Mike Ash Friday Q&A 中文译文:GCD 入门(二)多核性能

译文资源

GCD 入门(一)基础与派发队列

Mike Ash Friday Q&A 中文译文:GCD 入门(一)基础与派发队列

译文资源

Block 实用指南

Mike Ash Friday Q&A 中文译文:Block 实用指南

译文资源

C 语言类型限定符(上)

Mike Ash Friday Q&A 中文译文:C 语言类型限定符(上)

译文资源

Objective-C 类的加载与初始化

Mike Ash Friday Q&A 中文译文:Objective-C 类的加载与初始化

译文资源

Objective-C 消息转发

Mike Ash Friday Q&A 中文译文:Objective-C 消息转发

译文资源

Objective-C 消息发送机制

Mike Ash Friday Q&A 中文译文:Objective-C 消息发送机制

译文资源

Objective-C 运行时简介

Mike Ash Friday Q&A 中文译文:Objective-C 运行时简介