ObjC - 从数组中的对象获取值(NSMutableArray)

时间:2013-09-01 15:23:03

标签: java objective-c arrays object nsmutablearray

我是ObjC的新手。我已经看过/阅读了一些教程。但现在我想知道如何制作一个对象数组并打印出它们的值。我是从Java角度出发的。在Java中,它看起来像这样。

MyClass [] objects = new MyClass[100];

for(int i = 0; i < objects.length;i++)
   int value = i;
   objects[i] = new MyClass(value);

for(int i = 0; i < objects.length;i++)
   println(objects[i].value);

ObjC中的等效物怎么样?我只走了那么远:

NSMutableArray * objects = [NSMutableArray  arrayWithCapacity:100];

2 个答案:

答案 0 :(得分:1)

它可能是这样的(考虑到它可以写得更紧凑,但这会使初学者的代码神秘化):

const int NR_ELEMENTS = 100;

NSMutableArray *objects = [NSMutableArray arrayWithCapacity:NR_ELEMENTS];

for (int i=0; i < NR_ELEMENTS; i++)
{
    MyClass *mc = [[MyClass alloc] initWith:i];
    [objects addObject:mc];
}

for (int i=0; i < NR_ELEMENTS; i++)
{
    // Suppose MyClass.value is integer
    NSLog(@"%i\n", [[objects objectAtIndex:i] value]);
}

亲切的问候, PB

答案 1 :(得分:1)

不确定您的MyClass是什么样的,但如果您只想添加整数对象,则可以执行以下操作。此外,MutableArray会根据需要调整大小,因此当您将数组大小修复为100时,它不像您的情况。

NSMutableArray *objects = [NSMutableArray arrayWithCapacity:100];

for(int i = 0; i < 100; ++i)
    [objects addObject:[NSNumber numberWithInt:i]];

for(id object in objects) {
    NSLog(@"%@\n",object);
}