如何获得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"];
- 生成失败,错误命令/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
- 核心数据直接在代码中获取/设置属性时,不会自动调用值转换器
- NSPredicate在NSSet中查找带有属性的对象
- NSManagedObjectContext executeFetchRequest返回不稳定的对象,导致EXC_BAD_ACCESS,SIGABRT等
- iOS swift:使用coredata(cloudkit)存储caching
- 我无法获得nsmanageobjectcontext
- Swift中的核心数据:只保存for循环中的最后一个对象
- 用核心数据保存数组Swift 3?
- 将核心数据与iCloud同步 – 不包括实体