如何将 nil 添加到数组中?

How to add nil into Array?

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

var answersBody = [String]()

当answer_body为nil时,它returns error.Could你告诉我如何解决这个问题?

  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()
    }

您正在尝试向不接受 nil 值的数组添加 nil 值。

试试这个:

对于数组初始化:

var answersBody = [String?]()

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

self.answersBody.append(answer_body)

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

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

然后

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

let 将打开您的可选包装。如果不为nil,则进入if;否则 else 将执行。

我按照前面两个答案的建议使用了一个字符串可选数组,但对我不起作用,我改用这个:

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