对许多对象执行相同的操作

JSA*_*986 1 cocoa-touch objective-c ios

如果我有100个UITextFields,

myTextfFeld1,myTextField2......等等mytextField100

......他们都执行相同的动作,说变化myTextField1.alpha = 0.4myTextField1.alpha = 1.

而不是写出100次这是一个更有效的方法来做到这一点

我在这里看一下iOS循环对象的属性并添加动作,但它仍然意味着将所有内容添加UITextFields到数组中.

小智 6

请不!

像这样.

认真使用数组.你敢有一个名为100的实例变量textField1textField100!


只是为了真正回答你的问题:你仍然可以做到这一点.同样,我强烈反对这样做,但为了完整起见,这里是代码:

for (int i = 1; i <= 100; i++) {
    NSString *ivarName = [NSString stringWithFormat:@"myTextField%d", i];
    UITextField *tf = [self valueForKey:ivarName];
    [tf doWhateverYouWant];
}
Run Code Online (Sandbox Code Playgroud)

Objective-C中的反思很棒,不是吗?滥用时并不完全.