Runtime运行时特性详解 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 Runtime术语 消息 动态方法解析 消息转发 健壮的实例变量(Non Fragile ivars) Objective-C Associated Objects Method Swizzling 总结 引言 曾经觉得Objc特别方便上手,面对着 Cocoa 中大量…
前言 本篇主要介绍Runtime在开发中的一些使用场景,顺便讲解了下MJExtension的底层实现 一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C语言,函数的调用在编译的时候会决定调用哪个函数. 对于OC的函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用. 事实证明: 在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过就不…
运行时常用 什么是Runtime(前面的文章已经说的很清楚了,这里就简单的介绍一下) 我们写的代码在程序运行过程中都会被转化成runtime的C代码执行,例如[target doSomething];会被转化成objc_msgSend(target, @selector(doSomething));. OC中一切都被设计成了对象,我们都知道一个类被初始化成一个实例,这个实例是一个对象.实际上一个类本质上也是一个对象,在runtime中用结构体表示. 相关的定义: /// 描述类中的一个方法 ty…
我们知道的JVM内存区域有:堆和栈,这是一种泛的分法,也是按运行时区域的一种分法,堆是所有线程共享的一块区域,而栈是线程隔离的,每个线程互不共享. 线程不共享区域 每个线程的数据区域包括程序计数器.虚拟机栈和本地方法栈,它们都是在新线程创建时才创建的. 程序计数器(Program Counter Rerister) 程序计数器区域一块内存较小的区域,它用于存储线程的每个执行指令,每个线程都有自己的程序计数器,此区域不会有内存溢出的情况. 虚拟机栈(VM Stack) 虚拟机栈描述的是Java方法…
一.关于运行时,已经从网络上摘抄了一片文章,这里只有项目中自己的简单使用 -- 查找隐藏的成员变量 导入头文件 可以获得隐藏的成员变量,方法,属性等 代码: 打印效果图:…
有时候在运行的时候,经常出现诸如i386的错误,最新一些可能会出现 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7s, VALID_ARCHS=armv7 armv6).类错误, 要解决以上问题,就要了解一下Apple移动设备处理器指令集相关的一些细节知识. 一.介绍 1.ARM ARM处理器,特点是体积小.低功耗.低成本.高性能,所以几乎所有手机处理器都基于ARM,在嵌入式系统中应用广泛 2.AR…
1.我们知道tableView是IOS中的高级视图,其继承与ScrollView,故我们知道他有具有ScrollView的所有功能.而且还扩展了许多.当然在这里就不一一介绍了. 2.tableView的表现格式分两种Plain和Grouped两种风格 3.tableView的两种代理类delegate和dataSource.这两种代理至关重要,我们在做tableView和这些代理是分不开的. 4.代理中比较常用的代理方法: (1)dataSource的两个必须使用的代理 @required //…
很多APP都会涉及到搜索框,苹果也为我们提供了默认的搜索框UISearchBar.但实际项目中我们通常需要更改系统默认搜索框的样式.为了实现这一目标,我们需要先搞懂 UISearchBar 的属性及方法.在系统的掌握了这些基础的前提下才能更好的去应用它,包括修改样式.或者是模仿系统搜索框的样式自定义一个自己的搜索框等. 本文主要介绍内容分为以下三个部分: 1. UISearchBar 的属性 2. UISearchBar 的方法 3. 自定义 UISearchBar 的样式 1. UISearc…
我们知道,每新建立一个工程,比如说HelloWord,在分类SupportingFiles里都会有一个以工程名开头-Prefix.pch结尾的文件,如HelloWord-Prefix.pch.对于这个文件,很长一段时间里笔者都没觉得它碍事.直到有一天笔者学习NSLog看网上的教程,大家是怎样在最终提交应用的时候,一次性将NSLog语句移除.网上大多转来转去的方法,都是说把如下的语句 #ifdef DEBUG#    define DLog(...) NSLog(__VA_ARGS__)#else…
1. 数据类型简介及输出() http://www.把下面的替换我.com/html/topnews201408/79/1279.htm csdn123…