我是一名新手iOS程序员,我遇到了问题。
我目前正在研究iOS核心数据,我的问题是我想通过取UISwitch
的值将数据插入到数据库的布尔属性中。
问题是我不知道我必须调用什么方法(例如.text对UITextField做同样的事情)。我做了一个小谷歌搜索,但没有结果。这是一些代码:
[newContact setValue:howMany.text forKey:@"quantity"];
[newContact setValue:important.??? forKey:@"important"];
howmany是一个文本域,重要的是UISwitch
答案 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"];