copy和mutableCopy在实际开发中常用到,同时,copy属性修饰符也是我们在定义NSString、NSArray和block等需要用到的,要较好地掌握它们,需要从原理上去分析于理解,本文侧重于分析copy和mutableCopy是如何实现的,进一步讲解使用copy和mutableCopy时应该注意的细节问题 本文分成两个部分来讲解说明,第一个是copy和mutableCopy方法的使用,
最近了解了 NSMutableArray原理,通过这篇文章了解到了其原理,这次我就将原文的 ARM64 讨论部分省略,对 NSMutableArray原理进行自己的总结描述。 ##C语言中的数组 也是我们常说的,当数组需要插入时,都需要对插入的下标后的数组的元素进行移动。同时删除元素也是如此 这种情况下,如果数组中的元素特别多,就会非常的耗时,那么我们使用 OC 中的 NSMutableA
转载 2023-08-18 15:42:42
95阅读
一、简单介绍其实NSMutableArray的扩容的话应该就是在于如果其容量不够了,就会去重新malloc一块新的区域,然后会复制旧的数据到新的区域,之后把旧的空间给free掉。下面我们就先去查看下NSMutableArray的对象的内存信息以及下面的那个就是指向第一个数据的指针的地址信息,所以下面我们再去读取从它开始的100个字节的内存信息上面的0x01000020b0其实就是Milk字符串的地
转载 2023-09-23 20:28:29
119阅读
一、普通C语言的数组实现:是开辟一段连续的内存空间,缺点:在插入下标为0的元素,会移动其他所有元素。添加,插入,删除同理。      当数组非常大时,这样很快会成为问题。  二、OC的NSMutableArray实现原理: 1、NSMutableArray 是一个类族,【【NSMutableArray new
转载 2023-07-31 23:01:38
351阅读
  1 NSMutableArray *array = [NSMutableArray arrayWithObjects:@"111",@"222",@"333",nil]; 2 NSMutableArray *array1 = [array copy]; 3 NSMutableArray *array2 = array1; 4 NSLog(@"aray:%@,ar
我总好奇 NSMutableArray 内部是如何工作的。别误会,不可变数组确实提供了极大的便利。它们不仅线程安全,在对它们进行拷贝时也是完全自由的。但这些改变不了它们死板的事实——它们的内容不可被修改。我发现实际内存操作的细节很迷人,这也是我这篇文章聚焦于可变数组的原因。当我在说明我是如何研究 NSMutableArray 的整个过程时,这篇文章会得相当具
转载 3月前
415阅读
iOS开发中,我们在非常非常多的地方用到了数组。而关于数组,有很多需要注意和优化的细节,需要我们潜入到下面,去了解。阅读《Effective Objective-C 2.0》的原版的时候,我发现了之前没怎么注意到的一段话:In the case of NSArray, when an instance is allocated, it’s an instance of another class
转载 2023-09-13 20:58:22
164阅读
# 实现NSMutableArray的步骤和代码解析 ## 概述 在iOS开发中,NSMutableArray是一种可变的数组,它允许我们随时添加、删除和修改其中的元素。本文将向刚入行的开发者介绍如何实现NSMutableArray。 ## 步骤概览 下面是实现NSMutableArray的步骤概览,我们将在接下来的内容中详细解释每一步的具体操作。 | 步骤 | 操作 | |----|---
原创 2024-02-02 08:24:28
50阅读
 Cocoa的NSArray是基于C底层CFArray/CFArrayRef实现的,NSArray可以看做是一个CFArrayRef的Wrapper类。__NSArrayI(Immutable)是NSArray的真正类型,__NSArrayM(Mutable)是NSMutableArray的真正类型。NSArray保存的对象可以是不同类型的对象,但只能保存OC对象(继承自NSObject
转载 2023-08-26 22:22:24
136阅读
Objective - C 中有很多在日常项目中经常用到的常用代码,在这里着重的讲一下关于copy 和 mutableCopy 的区别以及相关用法。Objective - C 中可变对象和不可对象经常用的如下:NSString、 NSMutableString | NSArray、NSMutableArray,分开说:A:NSString、 NSMutableString二者的copy方
转载 2023-09-24 00:14:14
182阅读
 copy与mutableCopy都是深拷贝,区别是mutableCopy拷贝出的对象是可变的。 OC对象基本都是通过指针访问,所以一般情况下,通过对指针的赋值都是浅拷贝,即只是拷贝了一份对象的指针,对象还是只有一个。例: NSMutableString *str = [NSMutableString stringWithString:@"abc"]; NSString *st
转载 2024-01-21 06:55:40
79阅读
# 替换 iOS NSMutableArrayiOS 开发中,NSMutableArray 是一个常用的动态数组容器,可以方便地对其中的元素进行增删改查操作。然而,在实际开发中,可能会遇到需要替换 NSMutableArray 的情况,比如需要使用更加强大的数据结构或者更高效的算法。本文将介绍如何替换 NSMutableArray,并给出代码示例,帮助开发者进一步了解替代方案。 ## 替
原创 2024-04-13 04:44:38
44阅读
# iOS NSMutableArray清空方法详解 在iOS开发中,`NSMutableArray`是一个非常常用的可变数组类。我们可以用它来动态地存储和管理对象。在某些情况下,我们可能需要在使用完毕后将这个数组清空,以便为下一次的数据存储做准备。本文将对如何清空`NSMutableArray`进行详细介绍,并提供代码示例。 ## NSMutableArray的清空方法 在Objectiv
原创 2024-11-02 06:31:17
71阅读
# iOS NSMutableArray的修改与操作 ## 引言 在iOS开发中,`NSMutableArray` 是一种非常常用的可变数组,用于存储同类型的对象。与不可变数组 `NSArray` 不同,`NSMutableArray` 允许对其内容进行修改,例如添加、删除和替换元素。这使得 `NSMutableArray` 在处理动态数据时非常便利。本文将介绍 `NSMutableArray
原创 2024-08-02 10:44:24
41阅读
# iOSNSMutableArray的遍历方法 在iOS开发中,NSMutableArray是一种常用的数据结构,用于存储一组有序的对象。在实际开发中,我们常常需要对NSMutableArray中的元素进行遍历操作,以便对其进行操作或展示。本文将介绍在iOS中如何使用不同的方法对NSMutableArray进行遍历。 ## 1. 使用快速枚举方式遍历 快速枚举是一种简洁、高效的遍历方式,
原创 2024-04-04 05:15:22
140阅读
# 实现iOS NSMutableArray替换的步骤指南 ## 介绍 在iOS开发中,NSMutableArray是一种常用的可变数组,可以方便地进行数据的增删改查操作。当我们需要替换数组中的某个元素时,可以通过一系列步骤来实现。本文将详细介绍如何进行iOS NSMutableArray的替换操作,并提供相应的代码示例和注释。 ## 整体流程 下面是实现iOS NSMutableArray
原创 2024-02-02 07:16:07
79阅读
在处理 `NSMutableArray` 时,尤其是在多线程环境下,实现加锁以确保数据同步是十分重要的。由于 `NSMutableArray` 并不是线程安全的集合类,我们必须采取适当的措施来保证数据的一致性和完整性。 --- ### 版本对比 在处理 `NSMutableArray` 的时候,我们需要关注不同版本 iOS 的特性差异。随着技术的演进,iOS 的不同版本对多线程操作支持程度逐
原创 7月前
28阅读
# iOS NSMutableArray 添加教程 作为一位经验丰富的开发者,我将会教会你如何在iOS开发中使用NSMutableArray进行添加操作。首先,让我们来了解一下整个过程的步骤。 ## 步骤概览 以下是实现"iOS NSMutableArray 添加"的步骤概览: | 步骤 | 描述 | | --- | --- | | 1 | 创建NSMutableArray对象 | | 2
原创 2023-08-28 05:28:29
368阅读
# 如何实现 iOS NSMutableArray 扩容 ## 一、流程 下面是实现 iOS NSMutableArray 扩容的整体流程: ```mermaid pie title Step "Step 1" : 确认当前数组容量 "Step 2" : 计算新的容量 "Step 3" : 执行扩容操作 ``` ## 二、具体步骤 ### Step 1:
原创 2024-06-04 07:21:57
34阅读
一、NSMutableArray底层原理普通c数组,就是一段能被方便读写的连续内存控件。 使用一段线性内存空间的一个最明显的缺点是,在下标 0 处插入一个元素时,需要移动其它所有的元素,同样地,假如想要保持相同的内存指针作为首个元素的地址,移除第一个元素需要进行相同的动作NSMutableArray本质是一个对象。它采用了环形缓冲区的结构。在两端插入和删除非常的快。插入头尾只是修改offset指针
转载 2023-06-02 22:55:20
415阅读
  • 1
  • 2
  • 3
  • 4
  • 5