NSClassFromString()
возвращает класс, который был зарегистрирован во время выполнения для данного имени. classNamed:
NSBundle возвращает класс с заданным именем внутри пакета, который, возможно, еще не был загружен (что означает, что он будет загружать пакет при необходимости).
Но по-другому: NSBundle, вероятно, не знает обо всех классах, загруженных во время выполнения вашего приложения (хотя, если это ваш основной комплект, он, вероятно, знает о большинстве ваших классов). И наоборот, среда выполнения вашего приложения не будет знать обо всех классах в пакете до его загрузки.