【问题标题】:Parse JSON to dictionary, issue with true and false解析 JSON 到字典,真假问题
【发布时间】:2014-10-10 00:06:55
【问题描述】:

我有一个 JSON 返回给我一个键:

"fork": false 或 "fork": true

当我查字典时,有一个

叉=0;或 fork = 1;

但是当我尝试调用此代码时

BOOL forkExist;

    if (dictionary[@"fork"])
    {
        if ((BOOL)dictionary[@"fork"])
        {
            NSLog(@">>>>>>>>>>>>>>>>>>> EXIST %@", dictionary[@"fork"]);
            forkExist = YES;
        }
        else
        {
            NSLog(@">>>>>>>>>>>>>>>>>>> NOT EXIST %@", dictionary[@"fork"]);
            forkExist = NO;
        }
    }

它非常适合我 NSLog(@">>>>>>>>>>>>>>>>>>> EXIST %@", dictionary[@"fork"]);并且永远不会第二个 NSLog

这是一个日志

>>>>>>>>>>>>>>>>>>> EXIST 0
>>>>>>>>>>>>>>>>>>> EXIST 1
>>>>>>>>>>>>>>>>>>> EXIST 0
>>>>>>>>>>>>>>>>>>> EXIST 0
>>>>>>>>>>>>>>>>>>> EXIST 0
>>>>>>>>>>>>>>>>>>> EXIST 1

但正如您所见,即使有 0 个值,它也永远不会调用 NOT EXIST。

我检查了字典类[@"fork"],它说它是__NSCFBoolean,但是当应用比较时,它似乎不起作用

【问题讨论】:

  • dictionary[@"fork"] 是指针,其值为内存地址,!=0。 (BOOL) 将把这个地址转换为真,如果这个指针永远不会为零!= nil

标签: ios json nsdictionary afnetworking


【解决方案1】:

字典将包含一个 NSNumber @0 或 @1 用于 BOOL,并且对象句柄始终是“真实的”,所以...

BOOL forkExist = [dictionary[@"fork"] boolValue];

应该可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    相关资源
    最近更新 更多