一、NSString的基本用法。
创建字符串的方法----------------*/
//1、创建常量字符串。
NSString *astring = @"This is a String!";
//2、创建空字符串,给予赋值。
NSString *astring = [[NSString alloc] init];
astrin
转载
2023-09-13 14:04:24
95阅读
前面写了一点关于runtime的swizzling,其实也是对象模型的一部分,今天就来详细讲一下ios的对象模型。那么什么叫对象模型呢,按照面向对象的设计原则来说,所有的事物都是对象,(iOS还是允许存在一些基本的数据类型,所以并没有严格遵守面向对象),同时对象也应该是另一个对象生成的实例。比如一个类生成一个实例,这个实例就叫做这个类的对象,也叫实例对象,那么问题来了,类是不是也是对象呢?iOS中
转载
2023-07-15 09:55:09
52阅读
iOS界比较流行的一句话:万物皆对象!为什么会有这么一个说法呢?难道类(class)也是对象(object)?对象其本质又是什么?这些问题在实际开发中或许遇不到,但当真的涉及到底层的开发,就要面对这些问题。想要透析对象的本质,就要了解运行时(runtime),苹果已经将 Object-C runtime 代码开源了,从:http://opensource.apple.com/source/objc
转载
2023-09-01 17:56:16
42阅读
文章目录实例对象类对象(Class)元类对象(Metaclass)关于isa指针isa概述实例对象的isa指针指向类对象类对象的isa指针指向元类元类对象的isa指向根元类举例 在iOS开发中可能会遇到这样的问题,什么是类对象,它和实例对象有什么区别?实例对象首先我们来看看经常使用到的实例对象。什么是实例?站在面向对象的角度上说,实例是一个抽象类具体的某个对象。由一个类实例化来的对象叫实例对象。
转载
2023-09-01 18:48:22
58阅读
1、对象在内存中的存储类加载:+load方法,而且只会调用一次。并且类一旦加载到内存,就不会被回收,直到程序结束的时候才会被回收。这个过程就叫做类加载。+initialize方法,也就是初始化对象,使创建出来的对象可以使用。 对象在内存之中是如何存储的呢?我们这里的p指针是在函数中声明的,那么p就是一个局部指针变量,也就是p变量存储在栈空间中。比如:int main(){
Person *
转载
2023-10-11 09:55:32
76阅读
IOS底层探索(一)OC对象内存分析11.1 OC对象占用内存原理11.1.1 初始OC对象占用内存11.1.1.1 查看内存具体内容方法11.1.1.2 查看属性占用内存情况 11.1 OC对象占用内存原理OC对象 最少占用 16 个字节内存.当对象中包含属性, 会按属性占用内存开辟空间. 每一行 16 个字节中, 剩余内存如果可以放下剩余其中一个属性 (参考倒数第二张图) , 则会在行末存储
转载
2023-09-01 10:39:13
100阅读
一、NSObject的底层结构NSObject的底层结构是一个结构体,先来看两个结构体:objc_object是所有结构体的祖先结构体吧,而我们所有NS开头的oc对象都是class,也就是objc_class,objc_class继承自objc_object,对没错C++的结构体可以继承。不想看细节可以直接跳到1struct objc_object {
private:
isa_t isa
转载
2023-07-24 23:29:48
88阅读
一、NSObject对象占用多少内存?系统分配了16个字节给NSObject对象(通过malloc_size函数获取) 但NSObject对象内部只使用了8个字节的空间(64bit坏境下,可通过class_getInstanceSize函数获取)NSObject *obj = [[NSObject alloc] init];
// 获得NSObject实例对象的成员变量所占用的大小 >&g
转载
2024-01-11 14:02:40
112阅读
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
转载
2023-07-17 23:20:09
133阅读
# iOS 拷贝对象的实现指南
在 iOS 开发中,有时我们需要拷贝类的实例对象。本文将指导你如何在 iOS 中实现对象的拷贝,涵盖整个流程和具体的代码实现。我们将通过流程表、甘特图和序列图来让你更加清楚地理解这个过程。
## 整体流程
下面是拷贝对象的整体流程:
| 步骤 | 描述 |
|------|--------------
原创
2024-10-18 09:53:03
37阅读
# iOS对象拷贝的实现方法
## 引言
在iOS开发中,对象拷贝(Object Copy)是一个常见的需求。当我们需要复制一个对象时,通常希望得到一个全新的对象,而不是只复制对象的引用。本文将介绍如何实现iOS对象的拷贝,并提供详细的步骤和示例代码。
## 流程图
以下是实现iOS对象拷贝的流程图:
```mermaid
erDiagram
开始 --> 创建新对象
创建新
原创
2023-12-09 07:34:37
49阅读
# iOS 可变对象——深度了解与代码示例
在 iOS 开发中,我们常常需要处理各种数据结构。在这其中,可变对象(Mutable Objects)是一个非常重要的概念。它的特点是能够在不改变其引用的情况下,修改对象的内部状态。本文将深入探讨可变对象的概念,并通过代码示例帮助读者更好地理解。
## 什么是可变对象?
可变对象是指一种能够在被创建后,其内容或状态可以被更改的对象。在 Object
# iOS 协议对象:深入理解与应用
在 iOS 开发中,协议(Protocol)是一个非常重要的概念,它定义了一组方法和属性,供遵循该协议的类或结构体实现。协议类似于其他编程语言中的接口,可以被视为对类或结构体行为的一个约定。在本文中,我们将深入探讨协议的定义、使用方式,并通过代码示例帮助你更好地理解。
## 什么是协议?
协议是对某些行为的声明,而不是具体实现。当一个类遵循某个协议时,它
iOS 僵尸对象
## 概述
在 iOS 开发中,内存管理是一个非常重要的话题。由于 iOS 系统采用了引用计数(Reference Counting)的内存管理方式,所以需要我们手动管理内存的分配和释放。在这个过程中,经常会遇到一种情况,就是使用已经释放的对象,导致程序崩溃。这种已经释放但仍然被使用的对象就被称为“僵尸对象”。
本文将详细介绍 iOS 僵尸对象的概念、产生原因以及如何检测和
原创
2023-08-25 04:35:04
365阅读
# iOS存储对象的实现
作为一名经验丰富的开发者,我将教你如何在iOS开发中实现存储对象的功能。这是一个非常常见的需求,通过以下步骤,你将能够轻松地实现对象的存储和读取。
## 整体流程
下面是实现iOS存储对象的整体流程。我们将使用NSUserDefaults来进行对象的存储和读取。
```mermaid
pie
title iOS存储对象的流程
"F存储对象" : 50
"F读取对象
原创
2024-02-16 03:15:40
50阅读
## iOS对象转换的实现步骤
### 1. 创建一个模型类
首先,我们需要创建一个模型类,用来表示我们要转换的对象。
```swift
class Person: Codable {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
原创
2023-12-31 10:17:53
51阅读
iOS 中遍历对象的过程和优化技巧
在 iOS 开发中,遍历对象是一个非常重要的操作,尤其是在处理大量数据或者复杂对象时。随着应用的不断进化和用户需求的日益增加,开发者们面临着性能上的挑战。本文将探讨如何有效地遍历 iOS 对象,并优化这类操作,帮助你提升应用的性能。
## 背景定位
在我们开始之前,先来看看初始技术痛点。很多时候,当我们处理大量数据时,简单的遍历可能会导致卡顿,影响用户体验
C++对象数组一、对象数组1.C++对象数组的定义:类名 数组名[元素个数]例:Student stu[10];2.对象数组访问形式:数组名[下标].成员名;例:stu[i].print();3.对象数组的初始化:对象数组的初始化通常也是由构造函数来完成的例:关于对象数组的几点说明: (1)在建立对象数组的时候需要调用构造函数。如果对象数组有100个元素,就需要调用100次构造函数。 (2)如
在iOS中,对象的序列化和反序列化分别使用NSKeyedArchiver和NSKeyedUnarchiver两个类,我们可以把一个类对象进行序列化然后保存到文件中,使用时再读取文件,把内容反序列化出来。这个过程通常也被称为对象的编码(归档)和解码(解档)。需要注意的是,NSKeyedArchiver和NSKeyedUnarchiver是继承于NSCoder这个抽象类的,所以我们需要手动实现相应的编
转载
2023-12-25 12:20:42
98阅读
文章目录
一、实例对象的本质
1、OC 实例对象在内存中是结构体
2、计算实例对象所占内存
2.1 class_getInstanceSize(Class cls) 函数
2.2 malloc_size(obj) 函数
2.3 sizeof(Type) 运算符
2.4 总结
二、对象的分类
1、实例对象(instance)
2、类对象
转载
2023-07-20 17:38:00
76阅读