RESTKit对象BOOL属性为true/false JSON

Die*_*ros 7 objective-c ios restkit

我有一些对象,我在请求正文中作为JSON发送到服务器,用于POST请求.我的问题与布尔属性有关.

假设我在作为JSON发送的对象中有此属性:

@property (nonatomic) BOOL exported;

默认情况下,RestKit将布尔值作为任一10以JSON 格式发送.如何设置RestKit以便将所有BOOL作为truefalse(它是JSON布尔类型)发送.

有趣的是,当从另一个方向,从JSON truefalseBOOL属性,RestKit读取JSON true/false就好了,适当地设置属性.

Die*_*ros 1

这个问题源于 SQLite 没有布尔数据类型。因此,如果我的核心数据模式中有一个布尔值,它最终仍然会作为整数存储在 SQLite 中(int 值为 1 或 0)。这就是为什么我在通过 RestKit 输出 JSON 时看到1or 0

为了纠正这个问题,我将我的属性从原来的问题更改BOOLNSNumber

@property (nonatomic) NSNumber *exported;

每当我分配给这个属性时,我需要用NSNumber布尔值来设置它。

   target.exported = [NSNumber numberWithBool:[self.exported boolValue]];
Run Code Online (Sandbox Code Playgroud)

生成的 JSON 现在是正确的,因为我使用以下命令设置 NSNumber boolValue

"exported" : true
Run Code Online (Sandbox Code Playgroud)