Objective-C学习笔记-第二天(1)

Objective-C中,调用方法采用的是一种消息传递机制。

参考文章:http://blog.csdn.net/xingyevc/article/details/39397873

如果向某个对象传递一个信息,则会使用OC的动态绑定机制来决定需要调用的方法。

在底层,所有方法都是普通C语言函数。

然而对象收到消息后,究竟该掉哪个方法则完全于运行期决定,甚至可以在程序运行时改变。

这些特性使得OC称为一门真正的动态语言。

给对象发消息:

id returnValue = [someObject messageName:parameter];

转化为:

id returnValue = objc_msgSend(someObject,@selector(messageName),parameter);  

objc_msgSend函数会依据接收者与选择子的类型来调用适当的方法。

为了完成此操作,该方法需要在接收者所属的类中搜索其“方法列表”(list of methods)

如果能找到与选择子名称相符的方法,就跳至其实现代码。

若找不到,那就沿着继承体系继续向上查找,等找到名称相符的方法之后再跳转。

如果最终还是找不到相符的方法,那就执行“消息转发”

时间: 2024-10-18 16:08:24

Objective-C学习笔记-第二天(1)的相关文章

mysql 学习笔记 第二天

插入表格数据: Insert into table_name set columns_1=value1,columns_2=value2,对于没有赋值的列,将会取默认值,并且这个方法只能一次插入一个数据 利用文本方式插入数据: Load data local infile‘径’into table table_name: Select 的通用形式: Select columns from table or tables where conditions;from一般不能少的,但是当查询的时候没有

Mysql Cookbook学习笔记第二章

1,使用python链接mysql + ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # -*- coding: utf-8 -*- # connect.py --连接到MySQL服务器 import sys import MySQLdb try:     conn = MySQLdb.connect(db = "cookbook",                            host = "localhost"

java学习笔记 第二篇 核心技术(二)

第十四章 集合类 集合类用来存放对象的引用.继承关系如下图: 14.1 Collection 接口 是层次结构中的根接口,构成Collection的单位称为元素.Collection接口不能直接使用,但该接口提供了添加元素.删除元素.管理数据的方法. Collection接口常用方法: 14.2 List 集合 包括List接口以及List集合的所有实现类.List集合中的元素允许重复,各元素循序就是对象插入的顺序 1.List接口,两个重要方法: get(int index): 获取指定索引位

UI学习笔记---第二天

程序的执行流程 一.自定义视图 自定义UILebal-UITextField视图 ?定义视图:系统标准UI之外,?己组合而出的新的视图. 实际开发中,我们还需?定义视图.积累?己的代码库.?便开发. ?己封装的视图,能像系统UI控件一样,?于别的项目中,能?大降 低开发成本,提?开发效率. 自定义视图步骤 根据需求的不同,?定义视图继承的类也有所不同.?般?自定义的视图会继承于UIView.以下是?定义视图的要点: 1.创建?个UIView子类 2.在类的初始化方法中添加子视图 3.类的.h?文

[struts2学习笔记] 第二节 使用Maven搞定管理和构造Struts 2 Web应用程序的七个步骤

本文地址:http://blog.csdn.net/sushengmiyan/article/details/40303897 官方文档:http://struts.apache.org/release/2.3.x/docs/create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application.html 本文作者:sushengmiyan ---------------------

js学习笔记第二篇

Js笔记整理 1.StringAPI a)        大小写转换:str.toUpperCase();str.toLowerCase(); b)        获取指定位置字符: Str[i]--->倒数第二个str[str.length-2] str.charAt(i) str.charCodeAt(i);返回字符的Unicode吗? c)  查找关键字的位置: I.var i=str.indexOf(“kword”[,starti]);如果找不到返回-1,starti默认为0 Ii va

菜鸟Python学习笔记第二天:关于Python黑客。

2016年1月5日 星期四 天气:还好 一直不知道自己为什么要去学Python,其实Python能做到的Java都可以做到,Python有的有点Java也有,而且Java还是必修课,可是就是不愿意去学Java,后来看到了<Linux黑客的python编程之道>然后发现了一些自己感兴趣的事,每个IT男都有一个黑客梦,我也不例外,所以继续开始Python写习. 因为要准备高数考试,所有以很多东西不能去仔细学习. 就深深的记住了几句话: 第一句:调试器就是黑客的眼睛.刚开始不懂什么是调试器:但是从眼

《JavaScript权威指南》学习笔记 第二天 下好一盘大棋

前段学习js的时候总是零零散散的,以至于很多东西都模棱两可.时间稍微一久,就容易忘记.最主要的原因是这些东西,原来学的时候就不是太懂,以至于和其他知识无法形成记忆链,所以孤零零的知识特别容易忘记.重温犀牛书,加上最近对记忆宫殿的记忆方法有点感兴趣,于是结合起来来做笔记. 开始吧,上去先扔一张我画的js的数据类型.后面的所有东西,基本上都是基于这张图的. 原始类型没啥说的,就是string,number ,boolean . 对象类型包括 对象.其实还有Array, func 也是特殊的对象.  

Android学习笔记(第二篇)View中的五大布局

PS:人不要低估自己的实力,但是也不能高估自己的能力.凡事谦为本... 学习内容: 1.用户界面View中的五大布局... i.首先介绍一下view的概念   view是什么呢?我们已经知道一个Activity是Android的显示层,但是Activity是不能直接显示在屏幕上的,它也像JSP那样,显示的东西是html,那么Android也不例外,Activity是一个抽象的壳子,而显示的东西就是view或者是viewgroup(图形用户组件)....   有了这个概念,我们就清楚view是如何

鸟哥的私房菜Linux视频教程学习笔记(第二集)

第2集:Linux的档案属性与目录配置 主要内容:1 用户与用户主2 Linux文件权限3 Linux目录配置4 Linux支持的文件系统 Linux文件权限举例: 用 ls -l 命令之后看到:(用 ls -la 命令查看当前目录下所有文档,包括隐藏了的) drwxr-xr-x 2 root root 3072 Apr 23 11:12 bin[档案属性] [连结数] [拥有者] [所属群组] [文件容量] [修改日期] [文件名] 关于档案属性的解释:档案属性共有10个字符来描述:比如:-r