ios - Obj C 和 makeObjectsPerformSelector - 我是否忽略了什么?

标签 ios objective-c xcode

作为 obj-c 的新手,我一直在研究 makeObjectsPerformSelector 方法。

我有两个数组,分别包含 UISteppers 和 UITextfields:

_stepper = [NSArray arrayWithObjects:
           _stepMa, _stepMafree, _stepDe,   _stepDefree,   _stepFl, _stepFlfree,
           _stepEn, _stepEnfree, _stepEnBl, _stepEnBlfree, _stepVo, _stepVofree,
           _stepVe, _stepVefree, _stepIn,   _stepInfree,   _stepOt, _stepOtfree,
           _stepIn170, _stepIn170free, _stepZy, _stepZyfree,
           nil];

_fields = [NSArray arrayWithObjects:
           _MaFeld, _MaFeldfree, _DeFeld,   _DeFeldfree,   _FlFeld, _FlFeldfree,
           _EnFeld, _EnFeldfree, _EnBlFeld, _EnBlFeldfree, _VoFeld, _VoFeldfree,
           _VeFeld, _VeFeldfree, _InFeld,   _InFeldfree,   _OtFeld, _OtFeldfree,
           _InFeld170, _InFeld170free, _ZyFeld, _ZyFeldfree,
           nil];

我想通过某种方式重置它们:

- (void) resetFields
{
    [_stepper enumerateObjectsUsingBlock: ^(UIStepper* stepper, NSUInteger idx, BOOL *stop)
     {
         stepper.value = 0;
     }];

    [_fields enumerateObjectsUsingBlock: ^(UITextField* field, NSUInteger idx, BOOL *stop)
     {
         field.text = @"0";
     }];
}

按预期工作。

尝试缩短该代码,我用上述方法试试运气:

- (void) resetFields
{
    [_stepper makeObjectsPerformSelector:@selector(value) withObject:0];
    [_fields  makeObjectsPerformSelector:@selector(text)  withObject:@"0"];
}

这没有影响......我想有些事情我没有考虑,但是什么?

谢谢!

最佳答案

要绕过 int 是 C 类型而不是对象的问题,请使用 KVC(键值编码)。如果您在 NSArray 对象上调用 setValue:forKey:,方法 setValue:forKey: 将调用数组的每个对象。此外,KVC 还管理着所有原始的东西。

[_stepper setValue:@0 forKey:@"value"];
[_fields setValue:@"0" forKey:@"text"];

关于ios - Obj C 和 makeObjectsPerformSelector - 我是否忽略了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24556564/

相关文章:

javascript - 阻止 iPhone 降低视频质量 <input type =“file” >

ios - 返回按钮有问题

ios - 如何添加自定义tableviewcell分隔符?

objective-c - 如何创建水平 UIPickerView 样式控件?

ios - 如果生成报告后测试失败,如何让 jenkins 使构建失败?

ios - uicollectionview奇怪的差距

objective-c - 使用 SUN RPC 将文件从客户端传输到服务器

ios - 使用 Storyboard?.实例化返回 "Unexpectedly found nil"错误

ios - 在 Swift 的 iOS 中,如何隐藏框架中的依赖框架?

ios - 删除/编辑 ALAssetsLibrary 中的专辑组,可以吗?