2012-09-03 75 views
1

我確定這是一個非常基本的過程,所以請原諒這個新手問題。如何初始化具有唯一名稱的多個對象

如何初始化幾個對象,使用相同的代碼,但每個對象都有唯一的名稱?我可以創建一個字符串來表示名稱,但是我將如何將它應用爲實際的對象名稱?我可以重命名對象嗎?

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]; 

回答

1

您可以稍後將標籤添加到您的控制器以引用它。

myTextView.tag = somePreCalculatedTagValue; 

,後來由標籤值與控制器匹配,你可以做你想做

if(myTextView.tag == kTagForFirstTextView) 
{ 
//do something 
} 
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";