【问题标题】:How to add nil into Array?如何将零添加到数组中?
【发布时间】:2015-07-21 11:30:34
【问题描述】:

我想将 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()
    }

【问题讨论】:

    标签: arrays swift null optional


    【解决方案1】:

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

    然后

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

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

    【讨论】:

      【解决方案2】:

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

      试试这个:

      对于数组初始化:

      var answersBody = [String?]()

      对于追加值时,去掉感叹号

      self.answersBody.append(answer_body)
      

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

      【讨论】:

      • 感谢您的帮助!但是,它仍然返回错误。我决定使用如下条件判断。如果 answer_body != nil{ ~~~ }else{ }
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        • 1970-01-01
        • 1970-01-01
        • 2019-08-17
        • 2014-08-10
        相关资源
        最近更新 更多