0

在我的应用程序的某个时刻,用户会看到大量的 UISwitches。当这个视图离开时,我想检查每个开关的位置,如果它打开,将一个简单的字符串保存到该开关的核心数据中,让我知道它是打开的。问题是,我不想手动制作一堆 if 语句,如下所示:

if(switch1 is on){
    save attribute in core data switch1checked as @"YES i am checked"
}

检查具有不同插座名称的不同 UISwitch 的最佳做法是什么?我在想像下面这样的事情:

for (UIView *view in [self.scrollView subviews]) {
    if ([view isKindOfClass:[UISwitch class]]) {
        UISwitch *switchView = (UISwitch *)view;
        if(switchView.isOn == YES){
            [self saveToCoreData];
        }

    }
}

问题不在于保存到 Core Data,问题在于如何知道它在哪个开关上。有任何想法吗?我确定这很简单,但我想不出解决方案。

4

1 回答 1

2

tag为每个开关添加一个。不要等待视图关闭,将targetand添加action到每个开关并处理值更改。当值发生变化时,使用tag确定哪个开关发生了变化并立即保存该数据。

tag可能是开关标识符数组的索引...

于 2013-10-09T22:50:52.690 回答