Это невозможно; NSArray (изменяемый или нет) будет содержать любой тип объекта. Что вы можете сделать, это создать свои собственные подклассы, как уже предложено Джимом. В качестве альтернативы, если вы хотите отфильтровать массив для удаления объектов не того типа, который вам нужен, вы можете сделать следующее:
- (void)removeObjectsFromArray:(NSMutableArray *)array otherThanOfType:(Class)type
{
int c = 0;
while(c < [array length])
{
NSObject *object = [array objectAtIndex:c];
if([object isKindOfClass:type])
c++;
else
[array removeObjectAtIndex:c];
}
}
...
[self removeObjectsFromArray:array otherThanOfType:[Car class]];
Или выносить другие суждения на основе результата isKindOfClass :, например, разделить массив, содержащий смесь автомобилей и колес, на два массива, каждый из которых содержит только один тип объекта.