Возможно, ваш класс не будет связан, если это единственная ссылка на него.
У меня был фабричный метод для создания экземпляров различных типов подклассов. У фабрики был оператор switch, который перешел к соответствующему подклассу и выделил и инициировал его. Я заметил, что все операторы alloc / init были точно такими же, за исключением имени класса. Таким образом, я смог удалить весь блок переключателей с помощью функции NSClassFromString ().
Я столкнулся с той же проблемой - возвращение было ноль. Это произошло потому, что класс не использовался в другом месте программы, поэтому он не был связан, поэтому его нельзя было найти во время выполнения.
Вы можете решить эту проблему, включив следующее утверждение:
[MyClass class];
Это побеждает всю цель того, чего я пытался достичь, но это может быть все, что вам нужно.