从Objective-C中的字符串调用属性/实例变量

1 iphone

基本上我的视图控制器具有类的49个实例变量CircleView(叫circleView1,circleView2,... circleView49).该CircleView班是一个简单的子类UIImageView,基本上在初始化时返回一个圆圈图片.

这是我想要做的:

在我对视图控制器的实现中,我希望能够使用字符串选择实例变量,例如假设我生成i1到49之间的随机整数,让我们说它是5.我希望能够构建一个NSString使用类似的东西[NSString stringWithFormat @"circleView%i",i];并以某种方式到达实际的circleView5实例变量.这可能吗?

PS我正在寻找的内容NSClassFromString,但适用于实例变量或对象.

Rya*_*anR 5

KVC是你的朋友.假设你有一个包含circleView名称的字符串,

NSString *myCircle = [NSString stringWithFormat:@"circleView%i", i];
Run Code Online (Sandbox Code Playgroud)

您使用KVC访问控制器上的该属性:

CircleView *theCircle = [self valueForKey:myCircle];
Run Code Online (Sandbox Code Playgroud)

在旁注中,您应该考虑重新设计对象层次结构; 这将是非常难以维护的,并且肯定有更好的方法(通过索引访问CircleView的数组将是我的首选).