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:(4)Django和Ajax
向服务器发送请求的途径: 1. 浏览器地址栏,默认get请求 2. form表单: get请求: post请求 3. a标签,默认get请求 4. Ajax:get请求:post请求 Ajax的特点( ...
- Codeforces Round #489 (Div. 2) B、C
B. Nastya Studies Informatics time limit per test 1 second memory limit per test 256 megabytes input ...
- hdu - 1689 Just a Hook (线段树区间更新)
http://acm.hdu.edu.cn/showproblem.php?pid=1698 n个数初始每个数的价值为1,接下来有m个更新,每次x,y,z 把x,y区间的数的价值更新为z(1<= ...
- POJ 3468_A Simple Problem with Integers(树状数组)
完全不知道该怎么用,看书稍微懂了点. 题意: 给定序列及操作,求区间和. 分析: 树状数组可以高效的求出连续一段元素之和或更新单个元素的值.但是无法高效的给某一个区间的所有元素同时加个值. 不能直接用 ...
- Ubuntu 16.04出现Can't open /etc/rc.d/init.d/functions的问题解决
/etc/rc.d/init.d/functions是CentOS的位置,Ubuntu对应:/lib/lsb/init-functions 参考: https://unix.stackexchange ...
- wget: unable to resolve host address “mirrors.163.com” 的解决办法
wget:无法解析主机地址.这就能看出是DNS解析的问题. 解决办法: 登入root(VPS). 进入/etc/resolv.conf. 修改内容为下nameserver 8.8.8.8 #googl ...
- Java利用jacob实现文档格式转换
实现文档格式之间的转换,我使用的是jacob-1.7版本,需要jacob.jar来调用activex控件,本机需安装WPS/office,还需要jacob.jar以及jacob.dll 其中: ...
- 2011 ACM-ICPC 成都赛区A题 Alice and Bob (博弈动规)
题目大意: 有K堆石子,每堆有Ki个.两人的操作能够是: 1 从某一堆拿走一个 假设该堆在此之后没有石子了.就消失 2 合并两个堆 求是否 ...
- C - The C Answer (2nd Edition) - Exercise 1-8
/* Write a program to count blanks, tabs, and newlines. */ #include <stdio.h> /* count blanks, ...
- C# 插件热插拔 .NET:何时应该 “包装异常”? log4.net 自定义日志文件名称
C# 插件热插拔 所谓热插拔就是插件可以 在主程序不重新启动的情况直接更新插件, 网上有很多方案: https://www.cnblogs.com/happyframework/p/3405811 ...