如何将nil添加到Array中?

时间:2015-07-21 11:30:34

标签: arrays swift null optional

我想将nil添加到Array中,设置为answersBody。

var answersBody = [String]()

当answer_body为nil时,它会返回错误。你能告诉我如何解决这个问题吗?

  Alamofire.request(.GET, "http://localhost:3000/api/v1/questions/index",parameters: nil, encoding: .JSON)
        .responseJSON { (request, response, data, error) in
            var jsonObj = JSON(data!)
            var questions_count = jsonObj["questions"].count

            for var index = 0; index < questions_count; index++ {
                let answer_body = jsonObj["questions"][index]["answers"]["body"].string
                self.answersBody.append(answer_body!)
            }
            self.tableView.reloadData()
    }

3 个答案:

答案 0 :(得分:9)

使数组类型[String?]是可选字符串。它可以设置为零。常规字符串类型不能为零。

然后

if let body = answerBody{
    self.answersBody.append(body)
}
else{
    self.answersBody.append(nil)
}

让我们解开你的选择。如果它不是零,那么它将进入if;否则就会执行。

答案 1 :(得分:3)

您正尝试将nil值添加到不接受nil值的数组中。

试试这个:

对于数组初始化:

var answersBody = [String?]()

并且在附加值时,删除感叹号

self.answersBody.append(answer_body)

阅读:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html

答案 2 :(得分:-1)

我使用了一个字符串选项数组,因为之前的两个答案已经建议并且对我不起作用,我使用它代替:

var arrayValues: [AnyObject?] = [nil,nil,nil,nil,nil]