Это немного сложно объяснить. У меня есть массив ссылок на классы. Я хотел бы создать экземпляр члена одного из классов, но я не хочу использовать условное выражение.Мгновение от ссылки на класс
Вот мой код, который работает (ниже то, что я хотел бы сделать):
self.myClasses = [NSMutableArray arrayWithObjects:
[MyClassA class],
[MyClassB class],
[MyClassC class],
[MyClassD class],nil];
// later
int indexOfClassThatIWantAMemberOf = 2;
switch (indexOfClassThatIWantAMemberOf) {
case 0:
myObj = [[MyClassA alloc] init];
break;
case 1:
myObj = [[MyClassB alloc] init];
break;
case 2:
myObj = [[MyClassC alloc] init];
break;
case 3:
myObj = [[MyClassD alloc] init];
break;
default:
break;
}
выше работает нормально, но я предпочел бы одну строку кода, что-то вроде этого:
NSObjet *myOb = [[[self.myClasses objectAtIndex:i] alloc] init];
Кто-нибудь знает, если это возможно? Спасибо за помощь.
Пробовали ли вы, что вы предложили? Что случилось? –
вы пробовали, может быть ...? – holex
ANSWER Jeffamaphone и holex верны. После попытки снова работает мой код. В первый раз я должен был просто набрать некоторый код BS и получить ошибку компилятора. Спасибо за помощь и мои извинения за думпанскую. – znerolnoht