更改objective-c中的NSMutableArray大小

更改objective-c中的NSMutableArray大小,objective-c,arrays,size,Objective C,Arrays,Size,我环顾四周,什么也找不到,我开始觉得用objective-c是不可能的 我有一个NSMutableArray*myMutableArray,大小取决于加载的csv文件。因为我没有设置myMutableArray的大小,所以我不能: if (c == 5){ myMutableArray[q] = [[NSNumber numberWithFloat:myOtherArray] stringValue]; q = q + 1;

我环顾四周,什么也找不到,我开始觉得用objective-c是不可能的

我有一个
NSMutableArray*myMutableArray
,大小取决于加载的csv文件。因为我没有设置myMutableArray的大小,所以我不能:

       if (c == 5){

          myMutableArray[q] = [[NSNumber numberWithFloat:myOtherArray] stringValue];

          q = q + 1;
          c = 0;
       }

       Else {

           c = c + 1; 

       }
由于
myMutableArray
在技术上是大小为
nil
的,我想我无法向其中添加对象

在某些情况下,
q
可以介于1500和2500之间

我的问题是,如何使“myMutableArray”在每个循环上改变大小

如果这是不可能的,我想我将不得不使
myMutableArray
非常大-但我需要
myMutableArray
中的值作为图形。如果我使用
myMutableArray=[[NSMutableArray alloc]initWithCapacity:5000]并且不使用5000个内存位置,这些位置是零还是0?(抱歉,如果技术词汇有误,我所说的内存位置是指提供给
myMutableArray
的内存)

谢谢,如果还有什么我可以补充的,请随时告诉我


编辑:我试图实现的是向数组中添加数据,然后用这些数据创建一个图,你不能有一个零星填充的数组。创建一个容量为
5000的数组只不过是一个提示,提示您将在数组中存储多少数据。考虑使用字典数组,其中字典包含<代码> q>代码>值(大概是一个坐标)和相关值。然后,如果需要(用于打印),可以根据
q
值对阵列进行排序。然后您可以像往常一样将字典添加到数组中(
addObject:
)。

类向管理可修改对象数组的对象声明编程接口。此类将插入和删除操作添加到从NSArray继承的基本数组处理行为中。

如果你 阵列容量: 创建并返回一个NSMutableArray对象,该对象具有足够的已分配内存,最初可容纳给定数量的对象

可变数组可根据需要扩展。在声明它们时,我们可以这样初始化它们:

+ (instancetype)arrayWithCapacity:(NSUInteger)numItems
在这里,numItems只是建立对象的初始容量

稍后要添加更多数据,即要扩展可变数组,请使用

addObject:
它所做的是,在可变数组的末尾插入一个给定的对象

- (void)addObject:(id)anObject
需要注意的是:

要添加到数组内容末尾的对象。此值不能为零。如果一个对象为零,它会引发一个NSInvalidArgumentException

你最好解释一下你到底需要实现什么,因为很明显你会做一件错误的事情,还有一件事——因为myMutableArray在技术上是大小为零的——它不可能是大小为零的nil@AndreyChernukha编辑了我想要达到的目标如果你想添加因此,简单地使用addObject:method有什么不对?即使我没有设置数组大小,我也可以这样做吗?
arrayWithCapacity:
并不总是分配足够的内存来容纳指定数量的对象。它仅用作配置阵列的提示。由于数组不能有洞(空插槽),所以不需要消耗所有的内存。@bbum抱歉,但NSMutableArray类引用的苹果文档中另有说明:(否;docs只是确定初始容量,而不是阵列已分配内存来容纳所有容量。阵列的备份存储不是线性分配的内存块,详细信息会随着阵列的大小而变化。这可能会有所启发: