如何获得UISwitch的价值?

时间:2012-02-09 21:18:23

标签: ios cocoa-touch core-data uiswitch

我是一名新手iOS程序员,我遇到了问题。

我目前正在研究iOS核心数据,我的问题是我想通过取UISwitch的值将数据插入到数据库的布尔属性中。

问题是我不知道我必须调用什么方法(例如.text对UITextField做同样的事情)。我做了一个小谷歌搜索,但没有结果。这是一些代码:

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

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

5 个答案:

答案 0 :(得分:22)

保存

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

要检索它

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

答案 1 :(得分:17)

您是否查看了UISwitch的文档?一般情况下,你应该在搜索信息时将文档作为你的第一个调用点,然后转到谷歌然后堆叠溢出,如果你真的找不到你想要的东西。

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

important.isOn

如果您没有将Core Data设置为使用原语,则可能必须将该布尔值包装在NSNumber中:

[NSNumber numberWithBool:important.isOn]

答案 2 :(得分:5)

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

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

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

答案 3 :(得分:4)

我用过

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

[NSString stringWithFormat:@"%@",(self.allNotificationSwitch.isOn ? @"Yes":@"No")];

答案 4 :(得分:0)

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