Objective-C NSObject与运行时系统
创建: 2018/01/26
完成: 2018/02/02
遗留: TODO
| NSObject | |||||||||||||||||||||
| 运行时系统 |
程序运行时候起作用的系统? NSObject是运行时系统的接口(API) |
||||||||||||||||||||
| 属性 |
只有一个isa,决定实例与类的关系,不可以自己变更 @interface NSObject <NSObject> {
可以获取当前实例变量所属的类 |
||||||||||||||||||||
|
类与实例 |
|
||||||||||||||||||||
|
实例的生成与释放 |
|
||||||||||||||||||||
| 初始化 |
|
||||||||||||||||||||
| 对象的比较 |
|
||||||||||||||||||||
| 描述类 |
|
||||||||||||||||||||
| 信息传递机制(其他语言的函数) | |||||||||||||||||||||
| SEL类型 |
信息选择器(方法名)也是一种数据类型, SEL 无效的SEL表现为, NULL或者(SEL)0 |
||||||||||||||||||||
| 用SEL呼出信息 |
|
||||||||||||||||||||
|
信息探索途径 判断是否可以回应信息 |
收到信息后吗,先找自身,没有再往上找,到NSObject还没有就会报错
@interface S8_A : NSObject {
|
||||||||||||||||||||
| 获取函数指针 |
尽量不用 # TODO: Supply [p187] |
||||||||||||||||||||
| 对self的代入 | 改变了受体,所以除了init外不用 | ||||||||||||||||||||
|
target action 目标-动作模式 |
action method application框架(Mac OS) - (void)XXXXX:(id)sender; UIKit(iOS) - (void)XXXXX; - (void)XXXXX:(id)sender; - (void)XXXXX:(id)sender forEvent:(UIEvent *)event; |
||||||||||||||||||||
|
Xcode里事件方法和 控件的写法 |
事件:
- (IBAction) XXXXX:(id)sender; // IBAction是macro, 表示void outlet: 参照GUI的可读写声明属性叫做outlet IBOutlet NSbutton *theButton; // IBOutlet也是macro,实际为空白 |
||||||||||||||||||||
|
# TODO: Supply [p198~207] |
|||||||||||||||||||||
| Objective-C与Cocoa环境 | |||||||||||||||||||||
| 新的运行时系统 | |||||||||||||||||||||
Objective-C NSObject与运行时系统的更多相关文章
- Objective-O Runtime 运行时初体验
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一 ...
- iOS学习之Objective-C 2.0 运行时系统编程
0 导言 本主主要内容包括: 1.概述2.参考3.运行时系统的版本和平台4.和运行时系统的交互5.消息6.动态方法解析7.消息转发8.类型编码9.属性声明 1 概述 Objective-C语言将决定尽 ...
- [Xcode 实际操作]八、网络与多线程-(18)PerformSelector消息处理方法:由运行时系统,负责去调用对象的指定方法
目录:[Swift]Xcode实际操作 本文将演示PerformSelector消息处理方法. 在项目文件夹上点击鼠标右键弹出文件菜单. [New File]->[Swift File]-> ...
- Java 内存管理、JVM 工作原理与 Java 运行时系统
Java 虚拟机规范中说明:所有的对象实例(all class instances)以及数组都要在堆上分配: the heap is the runtime data area from which ...
- oc的运行时系统
Objective-C is a class-based object system. Each object is an instance of some class; the object's i ...
- cefSharp 设置运行时系统语言
在使用用CefSharp使用过程中,系统用了很多第三方控件.这些控件很多能够根据浏览器设置的语言来进行控件展示对应语言. 在cefSharp可以设置系统语言,代码如下: CefSharp.Settin ...
- iOS开发——高级特性&Runtime运行时特性详解
Runtime运行时特性详解 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 ...
- Objective-C Runtime 运行时之一:类与对象
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一 ...
- Objective-C Runtime 运行时之三:方法与消息
基础数据类型 SEL SEL又叫选择器,是表示一个方法的selector的指针,其定义如下: typedef struct objc_selector *SEL; objc_selector结构体的详 ...
随机推荐
- 关于Django中,实现序列化的几种不同方法
前言 关于序列化操作,就是将一个可迭代的数据结构,通过便利的方式进行我们所需要的操作. 今天历来归纳一下,Django中的几种不同得分方法,已经Django-restframework提供的方法 创建 ...
- HDU 1525 Euclid Game
题目大意: 给定2个数a , b,假定b>=a总是从b中取走一个a的整数倍,也就是让 b-k*a(k*a<=b) 每人执行一步这个操作,最后得到0的人胜利结束游戏 (0,a)是一个终止态P ...
- 游走(bzoj 3143)
Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...
- Quartz.net框架使用
概述:Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了 ...
- [bzoj3252]攻略_dfs序_线段树_贪心
攻略 bzoj-3252 题目大意:给定一棵n个节点的有根树,点有点权.让你选出至多k个节点,使得他们到根的链的并最大. 注释:$1\le n\le 2\cdot 10^5$,$1\le val_i\ ...
- JAVA初级复习知识点归纳
JDK的安装: 下载.安装 配置环境变量 a) path:.;%JAVA_HOME%\bin; b) JAVA_HOME:JDK的安装目录 c) classpath JDK和JRE和JVM: JAVA ...
- JSP操作
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/actions.html: JSP操作(Action)使用XML语法结构来控制Servlet引擎的行为.可 ...
- SVN 资源权限管理系统 SVNAdmin
原文:https://www.oschina.net/p/svn-admin
- Django学习系列之结合ajax
AJAX简介 什么是AJAX AJAX = 异步JavaScript 和 XML(Asynchronous JavaScript and XML) 通过在后台于服务器进行少量数据交换,AJAX可以使网 ...
- 笔记本电脑 联想 Thinkpad E420 无法打开摄像头怎么办
1 计算机管理-右击USB视频设备(应该显示为黄色问号,表示驱动安装不成功),点击浏览计算机以查找驱动程序软件 2 选择"从计算机的设备驱动程序列表中选择",然后选择Microso ...