Чтобы восстановить все эти удаленные файлы в папке, введите следующую команду:
git ls-files -d | xargs git checkout --
Вот что вам нужно:
Class theClass = NSClassFromString(classNameStr);
id myObject = [[theClass alloc] init];
Обратите внимание, что вы не можете использовать theClass
в качестве имени типа (т. Е. theClass *myObject
). Для этого вам придется использовать id
.
Требуется NSClassFromString
:
NSString *classNameStr = @"MyExampleClass";
Class theClass = NSClassFromString(classNameStr);
id myObject = [[theClass alloc] init];
Вы также можете использовать интерфейсы среды выполнения objc (например, objc_getClass(const char* name)
, objc_lookUpClass(const char* name)
). Первый не будет загружать класс. Последний будет. Этот вариант может быть хорошим в некоторых случаях.
id a = [[NSClassFromString(@"MyExampleClass") alloc] init];
используйте это, это даст вам то, что вы хотите.
Если вы пытаетесь динамически создавать свои классы, я рекомендую вам лучше взглянуть на шаблон проектирования фабричных методов, иначе вы потеряете представление о том, кто что строит и как.
Для этого вы можете закодировать класс, который получает строку и возвращает класс в зависимости от входной строки.
Взгляните на книгу Эриха Гамма «Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения»; Ричард Хелм; Ральф Джонсон; Джон Влиссидес.