Gavin.han

致力于移动开发 技术改变生活
随笔 - 133, 文章 - 0, 评论 - 46, 阅读 - 42万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  ios 深入探索(研究)

摘要:oc是一个全动态语言,oc的一切都是基于runtime实现的!从以下三方面来理解runtime吧!1. 传统的面向过程的语言开发,例如c语言。实现c语言编译器很简单,只要按照语法规则实现一个LALR语法分析器就可以了,编译器优化是非常难的topic,不在这里讨论范围内,忽略。 这里我们实现了编译器其中最最基础和原始的目标之一就是把一份代码里的函数名称,转化成一个相对内存地址,把调用这个函数的语句转换成一个jmp跳转指令。在程序开始运行时候,调用语句可以正确跳转到对应的函数地址。 这样很好,也很直白,但是。。。太死板了。everything is per-determined2. 我们希望灵活, 阅读全文

posted @ 2013-04-08 11:09 gavin.han 阅读(6565) 评论(0) 推荐(3) 编辑

摘要:1.函数指针--最本质,最底层的调用2.块语法--包,本质是通过函数指针调用的3.target-action模式-在函数指针之上的封装(借助OC函数名字符串通过SEL-@selector来查找函数指针),不知道要回调的函数(本质上是函数指针)4.委托协议模式--在函数指针之上的封装(借助OC函数名字符串通过SEL-@selector来查找函数指针),知道要回调的函数 (本质上是函数指针)5.消息通知--用单个对象给多个对象发消息(本质上还是函数指针) 阅读全文

posted @ 2013-03-15 14:15 gavin.han 阅读(1471) 评论(0) 推荐(0) 编辑

摘要:块语法的本质是:函数指针块语法的回调是通过传递函数指针实现的。贴图贴码为快:主函数:View Code #import <Foundation/Foundation.h>#import "HomeClass.h"int main(int argc, const char * argv[]){ @autoreleasepool { HomeClass *home = [[HomeClass alloc] init]; [home method]; } return 0;}HomeClass类:View Code #im... 阅读全文

posted @ 2013-03-15 14:09 gavin.han 阅读(1436) 评论(0) 推荐(0) 编辑

摘要:代码实现:RootViewController类的实现:View Code //// RootViewController.m// HttpRequestByBlockTest// 方法1:通过块(Block)实现回调-本质是函数指针// 方法2:通过函数指针实现回调// Created by hanjun on 13-3-15.// Copyright (c) 2013年 CompanyOfHanJun. All rights reserved.//#import "RootViewController.h"#import "HttpRequst.h" 阅读全文

posted @ 2013-03-15 13:40 gavin.han 阅读(5276) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示