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 :