如何获得UISwitch的价值?

我是一个新手iOS程序员,我有一个问题。

我目前在iOS核心数据上工作,我的问题是,我想通过取UISwitch的值来将数据插入布尔属性到数据库。

问题是,我不知道我要调用的方法是什么(例如.text对UITextField执行相同的操作)。 我做了一个小的谷歌search,但没有结果。 这里是一些代码:

 [newContact setValue:howMany.text forKey:@"quantity"]; [newContact setValue:important.??? forKey:@"important"]; 

howmany是一个文本框,重要的是一个UISwitch

保存它

 [newContact setObject:[NSNumber numberWithBool:important.on] forKey:@"important"]; 

检索它

 BOOL on = [[newContact objectForKey:@"important"] boolValue]; 

你看过UISwitch的文档吗? 一般来说,当search信息的时候,你应该把文档作为你的第一个调用点,然后转向谷歌,然后堆栈溢出,如果你真的找不到你以后的东西。

你想要@property(nonatomic, getter=isOn) BOOL on属性如:

 important.isOn 

如果你没有把Core Data设置为使用原语,你可能必须将该布尔值包装在一个NSNumber

 [NSNumber numberWithBool:important.isOn] 

其他的海报是正确的,你需要使用isOn方法来获取值,但是这将返回一个BOOL值,你不能直接传递给setValue:forKey,因为该方法需要一个对象。

要设置核心数据对象的值,首先将其包装在NSNumber中,如下所示:

 NSNumber *value = [NSNumber numberWithBool:important.on]; [newContact setValue:value forKey:@"important"]; 

我用了

 [NSString stringWithFormat:@"%d",(self.allNotificationSwitch.isOn ? 0:1)]; 

 [NSString stringWithFormat:@"%@",(self.allNotificationSwitch.isOn ? @"Yes":@"No")]; 
 [newContact setBool:[NSNumber numberWithBool:important.on] forKey:@"important"];