Создание произвольного класса в Objective C - PullRequest
0 голосов
/ 06 октября 2009

У меня есть NSMutableArray объектов в Objective C. Я заполняю это на основе содержимого файла данных, который содержит класс, которым должен быть каждый элемент, и список параметров. Все возможные классы наследуются от общего родительского класса.

Есть ли способ создания каждого элемента массива без жесткого кодирования каждого из возможных классов внутри массивного теста if-else?

Ответы [ 3 ]

7 голосов
/ 06 октября 2009

В настоящее время вы сохраняете имя класса в файле данных, а также параметры объекта.

Следовательно, вы можете использовать NSClassFromString для создания экземпляра этого пользовательского объекта класса и инициализации его состояния:

NSString *_myCustomClass = // get custom class name from data file...
id _myCustomObject = [[NSClassFromString(_myCustomClass) alloc] init];
// set up _myCustomObject's state from data file's parameters...
[_myMutableArray addObject:_myCustomObject];
[_myCustomObject release];
0 голосов
/ 06 октября 2009

Если вы также управляете записью этого файла данных, вам может быть проще использовать стандартную цель C archiving (называемая сериализацией на других языках). Это простой способ записи и чтения объектов в файл и из него.

0 голосов
/ 06 октября 2009

Да, я думаю, что memset () поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...