我知道这将是超级基础,但我有这段代码:
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个字符串元素。
我很确定这是一个非常简单的问题,但我想我现在已经不在了。
答案 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]()