Если вы хотите динамически размещать массив, используйте тип указателя id __strong.
@interface Foo
{
id __strong *idArray;
}
@end
Выделите массив с помощью calloc.id __strong должен начинаться с нуля.
idArray = (id __strong *)calloc(sizeof(id), entries);
Когда вы закончите, вы должны установить nil для записей массива и освободить.
for (int i = 0; i < entries; ++i)
idArray[i] = nil;
free(idArray);