Метод isKindOfClass
работает с экземплярами:
YES, если получатель является экземпляром aClass или экземпляром любого класса, который наследуется от aClass, в противном случае NO.
Тип itemClass
сам по себе является метатипом, и это не разновидность NSArray. Здесь вы имели в виду:
if ([item isKindOfClass: arrayClass]) { ... }
^^^^
Если вам нужно работать полностью в классах и у вас нет экземпляра, вы можете использовать +isSubclassOfClass:
вместо этого:
if ([itemClass isSubclassOfClass: arrayClass])) { ... }
^^^^^^^^^^^^^^^^^^