Objective-C中有两个NSObject,一个是NSObject类,另一个是NSObject协议。而其中NSObject类采用
了NSObject协议。对于NSObject来说,我们可是非常熟悉的了,它是objc中大多数类的基类。注意,并不
是所有的类都继承于NSObject,比如NSProxy类。 我们先来明确几个计算机概念,位(bit)、字节(byte)、字 位(bit) 计算机内部数据储存的最小单位,我们所谓的几位,就是常见的二进制中的一位。 字节(byte) 计算机中数据处理的基本单位,计算机中以字节为单位存储和解释信息。一个字节8bit 字(word) 计算机进行数据处理时,一次存取、加工和传送的数据长度称为字。和它相关的一个概念叫字长,是标识字的bit数,
在32位机器中,计算机总线一次传输32位=4字节。字64位机器中,计算机总线一次传输64位=8字节。所以64位机
比32位机速度快很多 内存中的计算都是用bit来标识的,可能是因为内存本身就是稀缺资源,并没有很大,存储的内容也不会过大。 Objective-C 是一门面向对象的编程语言。每一个对象都是一个类的实例。在 Objective-C 语言的内部,每一个
对象都有一个名为 isa 的指针,指向该对象的类。每一个类描述了一系列它的实例的特点,包括成员变量的列表,
成员函数的列表等。每一个对象都可以接受消息,而对象能够接收的消息列表是保存在它所对应的类中。 isa到底是什么呢?官方介绍是这样的: Every object is connected to the run-time system through itsisa instance variable,
inherited from the NSObject class.isa identifies the object's class; it points to a
structurethat's compiled from the class definition. Through isa, anobject can find
whatever information it needs at run timesuch asits place in the inheritance hierarchy,
the size and structure ofits instance variables, and the location of the
methodimplementations it can perform in response to messages. 可见,一个对象(Object)的isa指向了这个对象的类(Class),而这个对象的类(Class)的isa指向了metaclass。
这样我们就可以找到静态方法和变量了。 Objective-C 对象都是 C 语言结构体,所有的对象都包含一个类型为 isa 的指针,那么你可能确实对 ObjC 的底层有所知,
不过现在的 ObjC 对象的结构已经不是这样了。代替 isa 指针的是结构体 isa_t, 这个结构体中"包含"了当前对象指向的类的信息
- 浏览: 1211834 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1027)
- 拼接字符串小技巧 (1)
- JAVA 模块知识小结 (23)
- Tools (14)
- Android (20)
- ExtJS必学必会 (1)
- Nginx (4)
- 中间件 (9)
- java中间件 (6)
- linux (47)
- 23种设计模式 (15)
- 数据库知识 (15)
- Mycat中间件 (80)
- 华为框架--jalor5 (2)
- 数据库-----DB2 (24)
- 数据库-----ORACLE (47)
- 数据库-----MYSQL (82)
- 大数据 (16)
- 大数据--HBASE (4)
- 大数据--Storm (9)
- 大数据--Hive (5)
- 大数据--Hadoop (11)
- 大数据--ElasticSearch (16)
- 大数据--ZooKeeper (13)
- 大数据--redis (17)
- 大数据--Kafka (26)
- 大数据--MongoDB (9)
- 大数据之Flume (4)
- 大数据--sqoop (3)
- 大数据--SPARK (7)
- 大数据--memcached (1)
- 大数据------Impala (1)
- 大数据--Avro (1)
- 大数据--Apache Pig (1)
- 大数据--Logstash (1)
- 大数据--Kibana 简介 (1)
- 大数据之Impala (1)
- 大数据之Druid-IO介绍 (1)
- 大数据之HUE (1)
- 大数据之Ambari (1)
- 大数据之Presto (1)
- 大数据之Oozie (1)
- 编程语言之Python (4)
- 编程语言--PHP (5)
- 编程语言--Scala (2)
- 编程语言--JAVA之Mybatis (26)
- 编程语言之Ruby (2)
- 编程语言之C (2)
- 编程语言--JAVA之Spring (7)
- 编程语言--JAVA之Struts (1)
- 编程语言JAVA Hibernate (6)
- 编程语言之Kotlin (1)
- 编程语言--JAVA之网络编程 (3)
- 编程语言之Go (3)
- 编程语言之Erlang (1)
- erlang语言 (1)
- 算法研究--查找 (8)
- 算法研究--排序 (10)
- 网络协议 (47)
- 版本控制工具 (6)
- JAVA基础知识 (20)
- 负载均衡 (14)
- Hessian (1)
- 阿里之RocketMQ (5)
- 阿里之Canal (2)
- 阿里之TDDL (1)
- 阿里之DRDS (1)
- 阿里Dubbo框架 (2)
- 阿里JStorm框架 (3)
- 阿里之yugong (2)
- 阿里之Druid框架 (3)
- 阿里之cobar (1)
- Docker (17)
- VPN虚拟专网 (1)
- JFinal (1)
- JAVA语言基础 (23)
- HAProxy简介 (5)
- Netty介绍 (1)
- Squid介绍 (1)
- ZeroMQ (1)
- JVM深入研究 (4)
- Kerberos (1)
- Shiro (1)
- R语言 (2)
- CAS (2)
- Spring Security (1)
- 虚拟化技术 (10)
- python (2)
- Wireshark (1)
- JAVA_WEB 开发 (6)
- I/O模型 (1)
- Apache Mina (1)
- Apache Solr (2)
- Apache Nutch (1)
- Apache nifi (1)
- Apache Phoenix (1)
- Apache Thrift (1)
- Apache --Groovy (2)
- Apache Tika (1)
- Apache JMeter (1)
- Apache 之CouchDB (1)
- Apache之XML-RPC (1)
- 读书笔记 (4)
- 统计分析系统--SAS (1)
- Java Applet (1)
- JAVA之XStream (1)
- java之FreeMarker (1)
- JAVA 之WebWork (1)
- JAVA之velocity 介绍 (1)
- JAVA之Excel的导入(出) (4)
- Node.js (1)
- 信息安全 (2)
- Flex 编程 (1)
- 大数据--Alluxio (1)
- Jenkins (1)
- XDoclet (1)
- Play 框架 (1)
- ESB (2)
- JAVA之SiteMesh (1)
- JAVA 之Tiles (1)
- JAVA之工作流系统 (5)
- Apache之Tajo (1)
- 搜索引擎知识 (1)
- Apache 之Chukwa (1)
- Apache 之 ActiveMQ (2)
- Apache 之Accumulo (1)
- Apache之Lucene (2)
- Apache S4 (2)
- Apache之Tez (1)
- Apache之TOMCAT (3)
- Apache Kylin (1)
- Apache 之Ivy (1)
- Apache之Mesos (1)
- Zenoss (1)
- 阿里妈妈-adhoc之mdrill (1)
- 分布式调用 (5)
- RPC之Zeroc ICE (3)
- Java之RMI (1)
- RPC框架之Apache-XML (1)
- 人工智能系统 (10)
- 构建工具Maven (6)
- 持续集成 (1)
- 缓存技术 (8)
- 数据库之SequoiaDB (1)
- 数据分析 (2)
- 自然语言处理 (10)
- 数据库----MariaDB (1)
- 压缩算法 (2)
- 消息队列之LMAX Disruptor (1)
- 分布式文件系统DFS (1)
- Kubernetes (1)
- 自动化部署框架 (2)
- 分布式文件系统Tachyon (1)
- OpenCV (1)
- 数据库--db4o (1)
- 任务调度--Azkaban (1)
- 消息队列 (3)
- Apache 之 Flink (1)
- 消息队列,StormMQ (1)
- 图形数据库 (1)
- Zuul (1)
- 网站加速 (1)
- CDN (1)
- 数据库之PostgreSQL (2)
- CQRS 命令查询职责分离模式 (1)
- CoreOS--ETCD (1)
- 工作流引擎--Snaker (1)
- HPCC (1)
- 数据库之Greenplum (1)
- 监控系统 (8)
- Neo4j (1)
- Apache之Calcite (1)
- 大数据分享 (4)
- 人工智能分享 (10)
- Apache 之Camel (1)
- Apache之 Crunch (1)
- 分布式缓存 (7)
- Apache 之Etch (1)
- Apache之 Karaf (1)
- Apache 之ODE (1)
- Eclipse安装插件 (1)
- Apache之Qpid (1)
- Apache 之Ranger (1)
- Apache 之Flink (1)
- Apache 之Lens (1)
- Apache之Zeppelin (1)
- Apache 之Mahout (1)
- Apache之 Samza (1)
- Apache 之VCL (1)
- Apache 之Synapse (1)
- Apache 之ORC (1)
- apache之Tapestry (1)
- 射频识别 (2)
- JAVA框架之spark (1)
- Web服务器 Tengine (1)
- web服务器之kangle (1)
- 全文检索 (1)
- Java开发框架之Ninja (1)
- Spring-Boot (2)
- 操作系统底层 (1)
- Java之Web框架Vert.x (1)
- JAVA之NIO框架 (1)
- CORBA (2)
- 敏感词过滤 (1)
- 前端语言 (18)
- 事处理务 (2)
- 网络爬虫 (1)
- 复杂SQL案例 (3)
- 经典理论 (1)
- 容器集群管理系统 (1)
- 代理服务器 (1)
- 微服务框架 (8)
- 编程语言--JAVA之Web (4)
- 存储知识 (2)
- 报表技术 (12)
- Tomcat专题研究 (7)
- 网络知识 (2)
- Web服务器 之WebLogic (2)
- 编程语言--JAVA之Email (5)
- Apache 之Velocity (1)
- java之Javassist (1)
- JAVA之工作流 (3)
- JAVA之Undertow (1)
- JAVA之Grizzly (1)
- java之Spray (1)
- JAVA之验证码 (8)
- JAVA之序列化 (1)
- JAVA 之RESTful (1)
- XML解析 (5)
- RPC框架之Motan (1)
- 数据库之ArangoDB (1)
- 【lanproxy】 (1)
- 【RPC框架之RPCX】 (1)
- RPC框架之gRPC (1)
- JavaWeb之G4Studio (1)
- 区块链 (1)
- Sphinx (1)
- 跟踪系统 (1)
- 多租户 (1)
- 大数据之数据采集应用 (2)
- JAVA 之文件操作 (10)
- 软件测试 (1)
- Apache 之DistributedLog (1)
- Apache 之 Ignite (1)
- 分布式配置中心 (1)
- 【SaaS 介绍】 (1)
- 【数据库之ArangoDB】 (1)
- 【数据处理之ETL】 (1)
- Undertow (1)
- JAX-RS (1)
- 【百度云消息推送】 (1)
- IOS (7)
- Kannel (1)
- ServiceComb (1)
- 微信 (2)
- 规则引擎 (1)
- 短地址 (1)
- Exam (1)
- FastDFS (1)
- Arthas (0)
- 阿里之Arthas (1)
- 阿里之Seata (1)
- 微服务 (1)
- 分布式事务 (1)
- Flink (2)
- Apache-Ranger (1)
- azkaban (1)
- Intellij Idea (1)
- Apache DolphinScheduler (3)
- PMP项目管理 (1)
- sentry介绍 (1)
- 堡垒机 (1)
- 对象存储服务简介 (1)
- prometheus (1)
- Hazelcast (1)
- dolphinscheduler (1)
- PMP (1)
- 数据库之ClickHouse (2)
- Telegraf (1)
- apache之Dolphinscheduler (1)
最新评论
-
gaojingsong:
jstl1point0 写道高级版本JDK可以直接安装不用配置 ...
【win7配置jdk 环境变量】 -
jstl1point0:
高级版本JDK可以直接安装不用配置了
【win7配置jdk 环境变量】 -
hdd901002:
光说明错误在哪里有什么用,解决方法啊。。。我也碰到了,一条jo ...
Mycat源码解读--错误之【can't find table define in schema 】 -
masuweng:
【JAVA之图片水印】 -
masuweng:
【JAVA之多线程下载文件实现】
发表评论
-
【IOS隐藏键盘的方法】
2019-02-08 12:55 999IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘 ... -
【VMware Fusion】介绍
2019-01-15 21:50 1179VMware Fusion Pro是一款适用于Mac操作系统 ... -
【Charles】介绍
2019-01-14 21:22 826Charles Mac是一款免费的HTTP信息抓包工具,可 ... -
IOS语法
2019-01-13 20:48 744支持C语法 支持面向对象特性 兼容性好,可以同时在项目中使 ... -
【我的第一个Iphone程序】
2018-12-23 17:35 582iOS是苹果公司研发的一款手机操作系统。 于2007年开 ... -
【IOS介绍】
2018-11-17 20:40 661iOS是苹果公司研发的一款手机操作系统。于2007年开始运用 ...
相关推荐
前言 协议中<NSobject>是什么意思? 子类继承了父类,子类会遵守父类遵守的协议吗? 会遵守NSObject协议,但是只在头文件中声明,编译器是...iOS开发中,苹果提供的一些系统类都属于NSObject的子类,例如UIColor类的定
利用runtime对NSObject进行分类扩展,解决字典转Model的问题 原理:http://www.jianshu.com/p/71454166c397 github:https://github.com/cccgoodboy/CCModel 喜欢请给个star 谢谢!
iOS NSObject对象是iOS开发中最基本也是最重要的对象之一,我们在使用它时往往只是停留在会用的阶段,却没有深入了解过它的本质。今天我们就来深入研究一下NSObject对象的本质、内存分配、ISA指针及superclass底层...
在iOS和Objective-C的世界里,`NSObject`是所有对象的基础,它是Cocoa Touch和Cocoa框架的核心部分。这个压缩包“NSObject源码.zip”显然包含了`NSObject`类的源代码,这对于我们深入理解Objective-C的对象模型和...
### NSObject扩展:深入理解与应用 在Objective-C中,`NSObject`是所有类的基类,它提供了许多基本的功能和属性。对`NSObject`进行扩展(Category)是一种常见的编程技巧,用于向现有类添加额外的功能,而无需修改...
@interface Calculator : NSObject @property (nonatomic) double result; - (void)add:(double)number; - (void)subtract:(double)number; - (void)multiply:(double)number; - (void)divide:(double)number; @...
@interface MyClass : NSObject ``` ```swift class MyClass: MyProtocol {} ``` 2. **实现协议方法**:遵循协议的类需要实现协议中声明的所有方法,除非这些方法标记为可选(Objective-C中使用`@optional`,Swift...
在iOS应用开发中,`UIViewController`是苹果提供的一种基础视图控制器类,它负责管理屏幕上的内容和交互。本篇文章将深入探讨如何在不编写额外代码的情况下实现`UIViewController`的功能,以及如何通过其他方式使`...
在源码中,你可能会看到如NSObject、NSManagedObject等模型类,UIViewController及其子类,以及各种自定义视图的实现。 三、网络请求与数据持久化 iOS应用通常需要与服务器进行数据交换,CocoaChina的源码中可能会...
NSObject-序列化用法要运行示例项目, pod install克隆 repo,然后从 Example 目录运行pod install 。要求安装NSObject-Serialize 可通过。 要安装它,只需将以下行添加到您的 Podfile 中: pod "NSObject-Serialize...
在iOS开发中,富文本编辑器(Rich Text Editor)是一个重要的组件,用于用户创建和编辑包含格式化的文本,如加粗、斜体、颜色、链接等。标题中的"IOS - 富文本编辑器"指的是一个专门针对iOS平台的富文本编辑解决方案...
使用`-[NSObject respondsToSelector:]`或`-[NSObject methodForSelector:]`可以检查对象是否响应特定的选择器。 总的来说,“ios-ios 选择器.zip”资料包中的“FollowMeLearningPickerView”应该详细介绍了如何在...
本课程"千锋3G学院-IPHONE_iOS系列课程之Objective-C"专注于讲解这一核心语言,适合对iOS开发感兴趣的初学者和有志于提升技能的开发者。课程采用1024*768的高清分辨率,确保学习体验清晰舒适。 Objective-C起源于...
UIKit 框架结构图显示了所有的类最终都从 Foundation 框架的 NSObject 类继承而来,包括通用的用户界面类、窗口和视图、Cocoa 绑定的控制类、面板(对话框)、菜单和光标、分组和滚动视图等。 Core Graphics 框架...
标题中的“ios对象dictionary互转库”指的是一个扩展了`NSObject`类的库,它提供了将`NSDictionary`对象转换为自定义`NSObject`实例,以及将`NSObject`对象转换回`NSDictionary`的方法。这个库简化了对象和字典之间...
@protocol MyDelegate <NSObject> @optional - (void)forwardValue:(id)value; @end ``` 2. **实现协议**:在后页(即代理对象)中,我们声明遵循这个协议,并实现协议中定义的方法。例如: ```objc @interface ...
这些类会继承自NSObject,并使用属性(@IBOutlet和@IBAction)来连接界面元素。 3. **网络请求**:点餐系统可能需要从服务器获取菜品信息或发送订单数据,因此会涉及网络编程。这可能使用了Apple的URLSession或第三...
//获得NSObject 类的实例对象的大小//获取obj对象指针获取的大小输出结果分别是8 和 16系统分配了16个字节给NSObject对象(通过mallo
Foundation框架作为iOS应用开发的基础框架,提供了NSArray/NSMutableArray、NSDictionary/NSMutableDictionary等集合类,以及NSObject、NSString、NSData、NSDate等基础类,这些都是开发中经常用到的类。 在应用...