这是一个我知道可以简化的基本示例,但出于测试目的,我希望以这种方式执行此操作。我想根据附加字符串设置一个变量(变量“cam0”和“pos1”已经在类中声明)。追加的字符串本质上是一个索引,并且我将循环遍历一个循环来将摄像机(cam0,cam1 ..)分配到不同的位置(pos0,pos1 ..)。使用表示变量名称的字符串来设置变量
CAM0被定义为的UIImageView
POS1被定义为一个的CGRect
这个工程名为coverIndex一个的NSString变量:
NSString* text = [[NSString alloc] initWithString:@""];
NSLog(@"%@",(NSString *)[self performSelector:NSSelectorFromString([text stringByAppendingString:@"coverIndex"])]);
,我为coverIndex设置正确的字符串被记录到安慰。
现在回到我的UIImageView和CGRect。我希望这个工作。
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"])]];
我的错误是“转换为要求的非标型”
这是我发现做这样的事情(和得到的NSLog工作)的唯一途径,但我仍然相信,是一种更简单的方法。
非常感谢你的帮助:)你可以做到这将是一本字典,以创建您的相机和使用这些特殊NSString的中键将其
什么是实例变量凸轮和POS在头文件中的@property行。 – 2011-04-15 18:02:38
您是否知道[[NSString alloc] initWithString:@“cam”]与@“cam”完全相同? – hooleyhoop 2011-04-16 08:57:04