`
gaojingsong
  • 浏览: 1211834 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【IOS之NSObject】

    博客分类:
  • IOS
 
阅读更多
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, 这个结构体中"包含"了当前对象指向的类的信息
0
0
分享到:
评论

相关推荐

    iOS中NSObject的两种含义:类和协议详解

    前言 协议中<NSobject>是什么意思? 子类继承了父类,子类会遵守父类遵守的协议吗? 会遵守NSObject协议,但是只在头文件中声明,编译器是...iOS开发中,苹果提供的一些系统类都属于NSObject的子类,例如UIColor类的定

    ios-扩展NSObject实现Json转模型,字典转模型.zip

    利用runtime对NSObject进行分类扩展,解决字典转Model的问题 原理:http://www.jianshu.com/p/71454166c397 github:https://github.com/cccgoodboy/CCModel 喜欢请给个star 谢谢!

    iOS NSObject对象的本质、内存分配、ISA指针及superclass底层源码分析.pdf

    iOS NSObject对象是iOS开发中最基本也是最重要的对象之一,我们在使用它时往往只是停留在会用的阶段,却没有深入了解过它的本质。今天我们就来深入研究一下NSObject对象的本质、内存分配、ISA指针及superclass底层...

    NSObject源码.zip

    在iOS和Objective-C的世界里,`NSObject`是所有对象的基础,它是Cocoa Touch和Cocoa框架的核心部分。这个压缩包“NSObject源码.zip”显然包含了`NSObject`类的源代码,这对于我们深入理解Objective-C的对象模型和...

    NSObject扩展

    ### NSObject扩展:深入理解与应用 在Objective-C中,`NSObject`是所有类的基类,它提供了许多基本的功能和属性。对`NSObject`进行扩展(Category)是一种常见的编程技巧,用于向现有类添加额外的功能,而无需修改...

    iOS 高仿系统计算机

    @interface Calculator : NSObject @property (nonatomic) double result; - (void)add:(double)number; - (void)subtract:(double)number; - (void)multiply:(double)number; - (void)divide:(double)number; @...

    iOS之协议protocol

    @interface MyClass : NSObject ``` ```swift class MyClass: MyProtocol {} ``` 2. **实现协议方法**:遵循协议的类需要实现协议中声明的所有方法,除非这些方法标记为可选(Objective-C中使用`@optional`,Swift...

    0代码实现viewcontroller

    在iOS应用开发中,`UIViewController`是苹果提供的一种基础视图控制器类,它负责管理屏幕上的内容和交互。本篇文章将深入探讨如何在不编写额外代码的情况下实现`UIViewController`的功能,以及如何通过其他方式使`...

    IOS应用源码之CocoaChina.zip

    在源码中,你可能会看到如NSObject、NSManagedObject等模型类,UIViewController及其子类,以及各种自定义视图的实现。 三、网络请求与数据持久化 iOS应用通常需要与服务器进行数据交换,CocoaChina的源码中可能会...

    NSObject-Serialize:从 NSDictionary 到 NSObject 或从 NSObject 到 NSDictionary 的简单方法

    NSObject-序列化用法要运行示例项目, pod install克隆 repo,然后从 Example 目录运行pod install 。要求安装NSObject-Serialize 可通过。 要安装它,只需将以下行添加到您的 Podfile 中: pod "NSObject-Serialize...

    IOS - 富文本编辑器

    在iOS开发中,富文本编辑器(Rich Text Editor)是一个重要的组件,用于用户创建和编辑包含格式化的文本,如加粗、斜体、颜色、链接等。标题中的"IOS - 富文本编辑器"指的是一个专门针对iOS平台的富文本编辑解决方案...

    ios-ios 选择器.zip

    使用`-[NSObject respondsToSelector:]`或`-[NSObject methodForSelector:]`可以检查对象是否响应特定的选择器。 总的来说,“ios-ios 选择器.zip”资料包中的“FollowMeLearningPickerView”应该详细介绍了如何在...

    千锋3G学院-IPHONE_iOS系列课程之Objective-C【分辨率1024*768】

    本课程"千锋3G学院-IPHONE_iOS系列课程之Objective-C"专注于讲解这一核心语言,适合对iOS开发感兴趣的初学者和有志于提升技能的开发者。课程采用1024*768的高清分辨率,确保学习体验清晰舒适。 Objective-C起源于...

    ios几大框架汇总

    UIKit 框架结构图显示了所有的类最终都从 Foundation 框架的 NSObject 类继承而来,包括通用的用户界面类、窗口和视图、Cocoa 绑定的控制类、面板(对话框)、菜单和光标、分组和滚动视图等。 Core Graphics 框架...

    ios对象dictionary互转库

    标题中的“ios对象dictionary互转库”指的是一个扩展了`NSObject`类的库,它提供了将`NSDictionary`对象转换为自定义`NSObject`实例,以及将`NSObject`对象转换回`NSDictionary`的方法。这个库简化了对象和字典之间...

    ios中的代理设置模式

    @protocol MyDelegate <NSObject> @optional - (void)forwardValue:(id)value; @end ``` 2. **实现协议**:在后页(即代理对象)中,我们声明遵循这个协议,并实现协议中定义的方法。例如: ```objc @interface ...

    IOS应用源码Demo-iOS点餐系统-毕设学习.zip

    这些类会继承自NSObject,并使用属性(@IBOutlet和@IBAction)来连接界面元素。 3. **网络请求**:点餐系统可能需要从服务器获取菜品信息或发送订单数据,因此会涉及网络编程。这可能使用了Apple的URLSession或第三...

    chilimyan#iOS-source-note#一个 NSObject 对象占用多少内存空间1

    //获得NSObject 类的实例对象的大小//获取obj对象指针获取的大小输出结果分别是8 和 16系统分配了16个字节给NSObject对象(通过mallo

    iOS 开发知识树

    Foundation框架作为iOS应用开发的基础框架,提供了NSArray/NSMutableArray、NSDictionary/NSMutableDictionary等集合类,以及NSObject、NSString、NSData、NSDate等基础类,这些都是开发中经常用到的类。 在应用...

Global site tag (gtag.js) - Google Analytics