Student.h: #import <Foundation/Foundation.h> @interface Student : NSObject @property(nonatomic,assign) int age; +(id)studentWithAge:(int)age; @end Student.m: #import "Student.h" @
原创
2013-08-02 15:33:00
179阅读
Student.h:#import @interface Student : NSObject@property(nonatomic,assign) int age;+(id)studentWithAge:(int)age;@endStudent.m:#import "tudent+(id)studentWithAg
原创
2023-04-27 11:45:04
82阅读
在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阅读
1、数组没有进行alloc之前,内存地址是0,即还没有分配内存。此时在系统中的状态是nil(即不存在)。一旦alloc之后,系统就会为数组对象分配内存,状态就不再是nil。而是有具体的内存地址。注意:nil是指在内存中没有分配响应的地址,即内存中压根没有它的位置。如果一旦alloc,那么这个对象的状态就不会是 nil 了。(1)未alloc前(2)alloc后 /*--------------在数
转载
2013-01-19 13:47:00
46阅读
2评论
最近了解了 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阅读
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
75阅读
直接上代码:NSString* str0 = @"1
原创
2021-12-16 17:19:36
60阅读
Compare methodEither you implement a compare-method for your object:- (NSComparisonResult)compare:(Person *)otherObject { return [self.birthDate compare:otherObject.birthDate];}NSArray *sortedArray;sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(compare:)];NSSortDescriptor (better)...
转载
2013-06-05 22:24:00
92阅读
2评论
# 实现NSMutableArray的步骤和代码解析
## 概述
在iOS开发中,NSMutableArray是一种可变的数组,它允许我们随时添加、删除和修改其中的元素。本文将向刚入行的开发者介绍如何实现NSMutableArray。
## 步骤概览
下面是实现NSMutableArray的步骤概览,我们将在接下来的内容中详细解释每一步的具体操作。
| 步骤 | 操作 |
|----|---
原创
2024-02-02 08:24:28
50阅读
翻转一个数组非常简单:array.reverseObjectEnumerator.allObjects。我们使用系统提供的reverseObjectEnumerator,每一个NSEnumerator都实现了allObjects,该方法返回一个新数组。虽然没有原生的randomObjectEnumerator方法,你可以写一个自定义的打乱数组顺序的枚举器或者使用一些出色的开源代码。
原创
2014-03-20 12:12:28
2962阅读
一、NSMutableArray底层原理普通c数组,就是一段能被方便读写的连续内存控件。 使用一段线性内存空间的一个最明显的缺点是,在下标 0 处插入一个元素时,需要移动其它所有的元素,同样地,假如想要保持相同的内存指针作为首个元素的地址,移除第一个元素需要进行相同的动作NSMutableArray本质是一个对象。它采用了环形缓冲区的结构。在两端插入和删除非常的快。插入头尾只是修改offset指针
转载
2023-06-02 22:55:20
415阅读
我总好奇 NSMutableArray 内部是如何工作的。别误会,不可变数组确实提供了极大的便利。它们不仅线程安全,在对它们进行拷贝时也是完全自由的。但这些改变不了它们死板的事实——它们的内容不可被修改。我发现实际内存操作的细节很迷人,这也是我这篇文章聚焦于可变数组的原因。当我在说明我是如何研究 NSMutableArray 的整个过程时,这篇文章会得相当具
我在学习ES6数组拓展时,发现了新增了不少了有趣的数组方法,突然想好工作中判断数组是否包含某个元素是非常常见的操作,那么这篇文章顺便做个整理。1.for循环结合break可能很多人第一会想到for循环,毕竟for是最为保险和熟悉的操作: let arr = [1, 2, undefined, '听风是风', 'echo'],
i = 0;
const LENGTH = arr.lengt
转载
2023-08-20 13:49:09
74阅读
/****************************************************************************** NSArray*******************************************************************************/ /*-----------------
原创
2013-06-30 18:33:08
782阅读
1代码//// main.swift// NSArrayDemo//// Created by 赵超 on 14-6-22.// Copyright (c) 2014年 赵超. All rights reserved.//import Foun
原创
2024-07-26 10:57:29
29阅读
目录 Python判断列表是否已排序的各种方法及其性能分析声明一. 问题提出二. 代码实现2.1 guess2.2 sorted2.3 for-loop2.4 all2.5 numpy2.6 reduce2.7 imap2.8 izip2.9 fast2.10 random三. 性能分析3.1 列表前段乱序3.2 列表中段乱序3.3 列表后段乱序3.4 列表完全乱序3.5 列表元素相同3.6
转载
2023-08-22 08:08:13
134阅读
Shell判断字符串包含关系的几种方法 Shell中判断字符串包含关系的方法: 1、通过grep来判断: str1="abcdefgh"
str2="def"
result=$(echo $str1 | grep "${str2}")
if [[ "$result" != "" ]]
then
echo "包含"
else
echo "不包含"
fi先打印长字符串,然后在长字符串中 gre
转载
2024-02-21 14:07:45
66阅读