如何使用唯一名称初始化多个对象

时间:2012-09-03 05:34:47

标签: ios xcode object namespaces rename

我确信这是一个非常基本的程序,请原谅这个新手问题。

如何使用相同的代码初始化多个对象,但每个对象都有一个唯一的名称?我可以创建一个字符串来表示名称,但是如何将其作为实际的对象名称应用?我可以重命名对象吗?

顺便说一下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];

2 个答案:

答案 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";