0

我有一个休息 api,并通过 Json 获取所有数据,然后将其放入 IOS TableView 中。我的问题是一些数据正在返回,就像NULL在 Json 中一样

"vote_status":null

我正在尝试快速获取该NULL值并将其更改为字符串“0”,但这样做很难。到目前为止我有这个

  if var vote_status = Stream["vote_status"] as? String {
                                if (vote_status == (vote_status)[NSNull]) {
                                   vote_status = "0"
                                }
}

但是我得到这个编译错误:

不能使用类型为“(NSNull).Type”(又名“NSNull.Type”)的索引为类型为“String”的值下标

我这样做是因为nilnull似乎不起作用,所以我不能这样做。

if (vote_status == nil) ...
4

4 回答 4

6

您只需有条件地将您的字典值转换为 String 并使用 Nil Coalescing 运算符在失败的情况下??进行分配:"0"null

let vote_status = Stream["vote_status"] as? String ?? "0"
于 2017-04-15T04:49:27.513 回答
1

你可以试试这个

func checkForNull(value:AnyObject) -> String
    {
        if(value as! NSObject == NSNull() || value as! String == "")
        {
           return " "
        }
        else
        {
            return value as! String
        }
    }
于 2017-04-15T04:26:25.720 回答
1

斯威夫特 3.0

func checkNull(obj : AnyObject?) -> AnyObject? {
    if obj is NSNull {
        return nil
    } else {
        return value
    }
}

object.feature = checkNull(dict["feature"])

尝试这个

vote_status is NSNull 
于 2017-04-15T04:23:35.490 回答
1

尝试这样的事情:

if let category = Stream["vote_status"] as? String {
                        print(category)
                    } else {
                        print(category)
                    }
于 2018-09-18T10:04:37.350 回答