Usando uma String representando o nome de uma variável para definir a variável

Este é um exemplo básico que eu sei que pode ser simplificado, mas, para testar, eu gostaria de fazer isso dessa maneira. Eu quero definir uma variável com base em uma seqüência de caracteres anexada (as variáveis "cam0" e "pos1" já estão declaradas na classe). A string anexa seria essencialmente um índice, e eu percorreria um loop para atribuir câmeras (cam0, cam1 ..) a diferentes posições (pos0, pos1 ..).

cam0 é definido como um UIImageView
pos1 é definido como um CGRect

Isso funciona para uma variável NSString chamada coverIndex:

NSString* text = [[NSString alloc] initWithString:@""];
NSLog(@"%@",(NSString *)[self performSelector:NSSelectorFromString([text stringByAppendingString:@"coverIndex"])]);

A sequência correta que eu defini para coverIndex foi registrada no consol

Agora, de volta ao meu UIImageView e CGRect. Eu quero que isso funcione.

NSString* camText = [[NSString alloc] initWithString:@"cam"];
NSString* posText = [[NSString alloc] initWithString:@"pos"];

[(UIImageView *)[self performSelector:NSSelectorFromString([camText stringByAppendingString:@"0"])] setFrame:(CGRect)[self performSelector:NSSelectorFromString([posText stringByAppendingString:@"1"])]];

O meu erro é "Conversão para o tipo não escalar solicitado"

Esta é a única maneira que encontrei para fazer esse tipo de coisa (e fazer o NSLog funcionar), mas ainda acredito que há uma maneira mais fáci

Muito obrigado por qualquer ajuda :

questionAnswers(2)

yourAnswerToTheQuestion