简单的swift数组附加不起作用

时间:2016-06-24 00:48:19

标签: arrays swift

我知道这将是超级基础,但我有这段代码:

var labels: [String]?

func initVC(image: Images){
    self.image = image

    let tempLabels = image.label?.allObjects as! [Labels]
    for i in 0..<tempLabels.count{
        labels?.append(tempLabels[i].label!)
    }

}

标签位于公共范围内,因此该函数应该可以访问它,但是当循环运行时,标签仍为零,没有元素。

当我在调试期间使用po时,tempLabel就像我期望的那样有2个字符串元素。

我很确定这是一个非常简单的问题,但我想我现在已经不在了。

3 个答案:

答案 0 :(得分:18)

标签从未初始化。改变

var labels:[String]?

var labels:[String] = []

答案 1 :(得分:2)

您声明标签变量但从不允许它存储信息。这意味着它不一定存在,因为它没有被初始化,因此不能使用。

  

要使它可用,你必须初始化它

# GOPATH=`pwd` /usr/local/go/bin/go get github.com/andresdouglas/cuttle
# github.com/andresdouglas/cuttle
src/github.com/andresdouglas/cuttle/main.go:103: zone.GetController(r.URL.Host, r.URL.Path).Acquire() used as value

答案 2 :(得分:-5)

是的,这非常简单。

更改

var labels: [String]?

var labels = [String]()