在我的应用中的某个时刻,用户会看到大量的UISwitch。当这个视图离开时,我想检查每个开关的位置,如果它是打开的,要将一个简单的字符串保存到该开关的核心数据中,只是让我知道它已打开。问题是,我不想手动制作一堆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,问题是如何知道它所在的开关。有任何想法吗?我确信它很简单,但我想不出解决方案。
答案 0 :(得分:2)
为每台交换机添加tag
。不要等待视图关闭,为每个交换机添加target
和action
并处理值更改。当值发生变化时,使用tag
确定哪个开关已更改并立即保存该数据。
tag
可以是交换机标识符数组的索引......