Runtime消息传送
person.h
#import<Foundation/Foundation.h> @interfacePerson :NSObject + (void)eat; - (void)run:(int)age; - (void)eat; @end person.m
#import"Person.h" @implementationPerson
- (void)eat
{
NSLog(@"对象方法-吃东西");
} + (void)eat
{
NSLog(@"类方法-吃东西");
} - (void)run:(int)age
{
NSLog(@"%d",age);
}
@end
实现runtime实现的位置
#import"ViewController.h"
#import"Person.h" //使用运行时的第一步:导入<objc/message.h>
//第二步:Build Setting ->搜索msg ->设置属性为No
#import<objc/message.h> @interfaceViewController() @end @implementationViewController - (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
Person*p = [[Personalloc]init]; //吃东西
[peat];
// OC:运行时机制,消息机制是运行时机制最重要的机制
//消息机制:任何方法调用,本质都是发送消息 // SEL:方法编号,根据方法编号就可以找到对应方法实现
[pperformSelector:@selector(eat)]; //运行时,发送消息,谁做事情就那谁
// xcode5之后,苹果不建议使用底层方法
// xcode5之后,使用运行时. //让p发送消息
objc_msgSend(p,@selector(eat));
//传参
objc_msgSend(p,@selector(run:),); //类名调用类方法,本质类名转换成类对象
[Person eat]; //获取类对象
Class personClass = [Personclass]; [personClass performSelector:@selector(eat)]; //运行时
objc_msgSend(personClass,@selector(eat)); }
源自小马哥教学视频
Runtime消息传送的更多相关文章
- JMS发布/订阅消息传送例子
前言 基于上篇文章"基于Tomcat + JNDI + ActiveMQ实现JMS的点对点消息传送"很容易就可以编写一个发布/订阅消息传送例子,相关环境准备与该篇文章基本类似,主要 ...
- AMQ学习笔记 - 06. 可靠消息传送
概述 本文介绍JMS中可能发生消息故障的3个隐患阶段,以及确保消息安全的3种保障机制. 故障分析 在介绍可靠传送的确保机制之前,先分析消息在传送的过程中可能在哪个阶段出现问题. 1.两个跃点 跃点的含 ...
- Android基本功:Handler消息传送机制
一.什么是UI线程 当程序第一次启动的时候,Android会同时启动一条主线程( Main Thread). 主要负责处理与UI相关的事件. 二.UI线程存在的问题 出于性能优化考虑,Android的 ...
- Runtime - 消息发送原理
Runtime - 消息发送原理. Objective-C运行时的核心就在于消息分派器objc_msgSend,消息分派器把选择器映射为函数指针,并调用被引用的函数. 要想理解objc_msgSend ...
- Handler消息传送机制
一.什么是UI线程 当程序第一次启动的时候,Android会同时启动一条主线程( Main Thread). 主要负责处理与UI相关的事件. 二.UI线程存在的问题 出于性能优化考虑,Android的 ...
- JMS学习六(ActiveMQ消息传送模型)
ActiveMQ 支持两种截然不同的消息传送模型:PTP(即点对点模型)和Pub/Sub(即发布 /订阅模型),分别称作:PTP Domain 和Pub/Sub Domain. 一.PTP消息传送模型 ...
- [转]runtime 消息机制
原文地址:http://www.jianshu.com/p/f6300eb3ec3d 一.关于runtime 之前在项目中有遇到过用runtime解决改变全局字体的问题,所以再一次感受到了runtim ...
- runtime——消息机制
本文授权转载,作者:Sindri的小巢(简书) 从异常说起 我们都知道,在iOS中存在这么一个通用类类型id,它可以用来表示任何对象的类型 —— 这意味着我们使用id类型的对象调用任何一个方法,编译器 ...
- Runtime消息动态解析与转发流程
先上图: 下面根据具体代码看这张图. 一.创建一个Person类, Person.h #import <Foundation/Foundation.h> @interface Person ...
随机推荐
- C#中的线程(二) 线程同步基础
1.同步要领 下面的表格列展了.NET对协调或同步线程动作的可用的工具: 简易阻止方法 构成 目的 Sleep 阻止给定的时间周期 Join 等待另一个线程 ...
- ABAP 读取EXCEL文件到内表
1.选择excel文件: PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY. AT SELECTION-SCREEN ON VALUE-REQUES ...
- 使用kindeditor文本编辑器
aspx中代码: <%@ Page Language="C#" ValidateRequest="false" AutoEventWireup=" ...
- ASP.NET中的XML和JSON
一.DOM简介 1.XML 定义:XML是一种跨语言.跨平台的数据储存格式 2.什么是DOM DOM(document object model)文档对象模型:是一种允许程序或脚本动态的访问更新文档内 ...
- 一点一滴学shell-Shell expr的用法 (转)
原文链接:http://desheng666.blog.163.com/blog/static/4908408220121643953425/ expr命令一般用于整数值,但也可用于字符串.一般格式为 ...
- flex表格的使用
Flex中表格使用datagrid+columns两个组件构成,dagagrid中定义了表格的外观属性和数据源Columns中定义了表格的列名还有对应的字段,方便从数据源取得数据 数据源的赋值一般有两 ...
- JSON字符串解析
有时保存在数据库的数据是一串json字符串,需要进行读取的时候就需要解析操作. 简单介绍两种: 1.net.sf.json.* 2.com.alibaba.fastjson.* 需要的包自行下载. 第 ...
- css之滚动条
overflow:auto; overflow-x:auto; overflow-y:auto;
- 在Linux上安装最新版java的JDK
之前写过一篇关于MC建服的文章(http://www.cnblogs.com/apollospotatolikett/p/6149042.html),文章中使用的JDK不是最新的版本,当时没有细说如何 ...
- MySQL中GROUP_CONCAT中排序
SELECT concat('',group_concat(option_name )) as option_name,select_id FROM zuyi_t_search ...