1

これは非常に基本的な手順だと確信しているので、この初心者の質問を許してください。

同じコードで、それぞれが一意の名前を持つ複数のオブジェクトを初期化するにはどうすればよいですか?名前を表す文字列を作成できますが、実際のオブジェクト名としてどのように適用しますか?オブジェクトの名前を変更できますか?

ところで、目的は、後で名前でオブジェクトを参照して各オブジェクトに対して操作を実行できるようにすることです...一意の名前がこの問題の解決策になると思います...

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

2 に答える 2

1

後でコントローラーにタグを追加して、それを参照することができます。

myTextView.tag = somePreCalculatedTagValue;

その後、そのタグ値をコントローラーと照合することで、やりたいことができます

if(myTextView.tag == kTagForFirstTextView)
{
//do something
}  
于 2012-09-03T05:39:49.287 に答える
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";
于 2012-09-03T05:48:11.397 に答える