2

我正在目标 c 中编写一个 iOS 程序,我需要一个具有以下特征的数组:

1)它的形状需要在运行时决定。

2)它需要能够在objective-c类中存储为属性或全局

3)当我在特定索引处插入对象时,它需要停留在该索引处。 例如,如果我在索引 5 处插入,则对象需要覆盖索引 5 处的任何内容,并且不移动此元素或任何其他元素(类似于 java 数组的工作方式)

我看过 NSMutableArray 但这似乎不符合我上面描述的内容,因为它会在您插入时移动元素。我也试过NSString *myArray = malloc(10 * sizeof(NSString *));,但这给了我一个关于需要桥接演员的错误。我不知道那是什么。

我正在使用 ARC,以防万一。

4

2 回答 2

8

1)nameOfMyArray = [[NSMutableArray alloc] initWithObjects:@"obj1", @"obj2", "obj3",nil];

3)为什么不做一个插入操作,而不是做一个替换操作?

[nameOfMyArray replaceObjectAtIndex:0 withObject: @"newObject here"];
于 2012-06-07T14:32:04.977 回答
3

听起来你想要典型的 NSMutableArray 行为。

NSMutableArray *arr = [[NSMutableArray alloc] init];
// add a few objects, let's assume there are 10 objects
[arr replaceObjectAtIndex:5 withObject:myObject];

使用 replace 方法,什么都不会改变。您的代码看起来更像 C,而不是 Objective-C。我建议阅读一本书或一些文档来了解应该如何使用 Objective-C 对象——你永远不会 malloc 一个 Objective-C 对象,而应该使用 alloc 类方法。

于 2012-06-07T14:33:14.207 回答