使用 JSONKIT 序列化 NSNumber 时出错

Posted

技术标签:

【中文标题】使用 JSONKIT 序列化 NSNumber 时出错【英文标题】:Error in serializing NSNumber using JSONKIT 【发布时间】:2015-05-23 13:20:02 【问题描述】:

我在尝试使用JSONKIT 序列化包含NSNumber 的字典时收到EXC_BAD_ACCESS (code=EXC_I368_GPFLT)

我在以下行中名为 jk_encode_add_atom_to_buffer 的方法中遇到了异常

void  *objectISA = (JK_EXPECT_F(workAroundMacOSXABIBreakingBug)) ? NULL : *((void **)objectPtr);

这是我尝试过的示例代码

NSDictionary *dict = @@"StringKey":@"Value", @"NumberKey" : @5;
NSString* reqString = [dict JSONStringWithOptions:JKSerializeOptionNone error:&jsonError];

是否有任何提示为什么我会收到此错误?

【问题讨论】:

对于引用的行,我对它崩溃并不感到惊讶,我对它曾经奏效感到惊讶。这些家伙到底在做什么?我强烈推荐使用 NSJSONSerialization。 【参考方案1】:

我不知道你是否找到了问题的答案,因为这是一篇旧帖子,但我遇到了同样的错误,我使用这个版本的 JSONKit 修复了它:

https://github.com/danielStokowski/JSONKit

用这个代替旧的,就不会再出现这个错误了。

【讨论】:

我使用了一种解决方法。我明天将使用您的解决方案并回复您

以上是关于使用 JSONKIT 序列化 NSNumber 时出错的主要内容,如果未能解决你的问题,请参考以下文章

序列化时 JSONKit 无法识别的选择器

带有键值编码和 BOOL 的 JSONKit

使用 jsonkit 将 JSonString 反序列化为 NSArray

JSONKit 不反序列化不带引号的属性

Restkit 从 NSNumber 序列化布尔值

JSONKit反序列化问题