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结构体的详 ...
随机推荐
- Spring框架中 配置c3p0连接池
开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...
- poj3440--Coin Toss(几何上的概率)
Coin Toss Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 3946 Accepted: 1076 Descrip ...
- SpringBoot入门系列~Spring-Data-JPA自动建表
1.pom.xml引入Spring-Data-Jpa和mysql依赖 <!-- Spring-data-jpa依赖 --> <dependency> <groupId&g ...
- Count Color POJ - 2777 线段树
Chosen Problem Solving and Program design as an optional course, you are required to solve all kinds ...
- Ubuntu 16.04升级Linux内核为4.7.0最快的方法
升级内容有很多好处,比如支持最新硬件驱动,使系统更安装等.但是升级内容也会带来一些问题,比如一些软件的兼容性问题,从而出现一些莫名其妙的问题等,所以升级时要慎重考虑. 升级方法: 下载脚本: http ...
- 基于 Java 的开源网络爬虫框架 WebCollector
原文:https://www.oschina.net/p/webcollector
- html实现类似excel的复杂表格,及导出到excel
1. excellentexport.js https://github.com/jmaister/excellentexport/tree/2.0.3 2.fiddle example https ...
- 关于jQuery写插件及其演示
关于写jQuery插件是非常有必要的.这是前端学习其中必须经过的一个过程 对于初次写插件先想清楚原理 (function($){ $.fn.yourName = function(opt ...
- UM九图
UML有9种图: 用例图类图对象图状态图序列图协作图活动图组件图部署图 9,在中国是个阳数,通常代表很多的意思.比如说,九九艳阳天,九死而不悔,成吉思汗对功臣的九罪而不罚,天上九头鸟地上湖北佬,等等. ...
- C# TextBox改变高度的方法(转载)
最近在做C# Winform项目,需要有一个能动态调整大小的Textbox,并且要是单行的.试了几次,单行模式的Textbox不能直接改高度.于是搜索了一下,整理出几个改变高度的方法. 1.将Text ...