這是一個我知道可以簡化的基本示例,但出於測試目的,我希望以這種方式執行此操作。我想根據附加字符串設置一個變量(變量「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