Это зависит от того, чего вы пытаетесь достичь. Если объекты в массиве людей являются прямыми экземплярами человека, то вы не можете привести их к какому-либо подклассу человека, поскольку они не относятся к этому типу. Если этот сценарий верен и вы пытаетесь преобразовать Человека в Мужчину, то вам нужно будет создать метод init в классе Мужчин, который может инициировать новый объект, используя предоставленного Человека:
Male *male = [[Male alloc] initWithHuman: human];
При таком подходе ваш метод initWithHuman должен либо сохранить переданный в Human экземпляр и ссылаться на его значения, либо скопировать любые необходимые данные. Более поздний подход может быть добавлен к самому классу Human, и это позволит вам инициировать любой подкласс, используя метод initWithHuman (по сути, создавая базовую функцию копирования).
Если массив people содержит подклассы Human, вы можете привести их к правильному экземпляру, однако вам следует сначала проверить, являются ли они этим экземпляром. Вот пример:
for (Human *human in humans) {
if ([human isKindOfClass:[Male class]]) {
Male *male = (Male *) human;
}
}