我确信这是一个非常基本的程序,请原谅这个新手问题。
如何使用相同的代码初始化多个对象,但每个对象都有一个唯一的名称?我可以创建一个字符串来表示名称,但是如何将其作为实际的对象名称应用?我可以重命名对象吗?
顺便说一下BTW的目的是让我可以在以后通过名字对每个对象进行操作......我认为这个独特的名字可以解决这个问题......
NSString *theName = [NSString stringWithFormat:@"textView%d",tvNum];
tvNum ++;
UITextView *myTextView = [[UITextView alloc] initWithFrame:CGRectMake(self.view.bounds.size.width /2, self.view.bounds.size.height /2, 100, 100)];
[self.view addSubview:myTextView];
NSString *theText = [[NSString alloc] initWithString:@"string"];
[myTextView setText:theText];
答案 0 :(得分:1)
您可以稍后在控制器中添加标签以引用它。
myTextView.tag = somePreCalculatedTagValue;
以后通过将该标记值与控制器匹配,您可以执行您想要的操作
if(myTextView.tag == kTagForFirstTextView)
{
//do something
}
答案 1 :(得分:1)
最好创建一个对象数组。您可以使用for循环来设置它们:
NSMutableArray *objectArray = [[NSMutableArray alloc] initWithCapacity:NUM_OF_OBJECTS];
for (int i = 0; i < NUM_OF_OBJECTS; i++) {
UITextView *myTextView = [[UITextView alloc] initWithFrame:CGRectMake(self.view.bounds.size.width /2, self.view.bounds.size.height /2, 100, 100)];
[myTextView setText:@"string"];
[objectArray addObject:myTextView];
[self.view addSubview:myTextView];
}
稍后通过索引引用它们:
UITextView *thirdTextView = [objectArray objectAtIndex:2];
thirdTextView.text = @"Foobar";
或只是:
[objectArray objectAtIndex:2].text = @"Foobar";