我在目标c中编写了一个iOS程序,我需要一个具有以下特征的数组:
1)它的形状需要在运行时决定。
2)它需要能够作为属性或全局存储在objective-c类
中3)当我在特定索引处插入一个对象时,它需要保留在该索引处。例如,如果我在索引5处插入,则该对象需要覆盖索引5处的任何内容。 没有移动此元素或任何其他元素(类似于java数组的工作原理)
我看过NSMutableArray,但这似乎不适合我上面描述的内容,因为它在插入时会移动元素。我也试过了NSString *myArray = malloc(10 * sizeof(NSString *));
,但这给了我一个关于要求桥接演员的错误。我不知道那是什么。
我正在使用ARC,以防万一。
答案 0 :(得分:8)
1)nameOfMyArray = [[NSMutableArray alloc] initWithObjects:@"obj1", @"obj2", "obj3",nil];
3)为什么不进行替换操作,而不是进行插入操作?
[nameOfMyArray replaceObjectAtIndex:0 withObject: @"newObject here"];
答案 1 :(得分:3)
听起来你想要典型的NSMutableArray行为。
NSMutableArray *arr = [[NSMutableArray alloc] init];
// add a few objects, let's assume there are 10 objects
[arr replaceObjectAtIndex:5 withObject:myObject];
使用替换方法,不会移动任何内容。你的代码看起来更像C,而不是像Objective-C那样。我建议阅读一本书或一些文档来理解如何使用Objective-C对象 - 你永远不会使用malloc对象,而应该使用alloc类方法。