Ios 带追加的函数在swift中不起作用

Ios 带追加的函数在swift中不起作用,ios,swift,append,Ios,Swift,Append,我正试图编写一个函数,将内容附加到一个值数组中,然后打印出来,但调用我的函数后打印出来时,它会返回uu lldb_expr_444.taste?! 这是我的密码: // Playground - noun: a place where people can play import UIKit struct taste { var TheName = "blankName" var TheDesc = "blankDesc" } var data = [taste]() fu

我正试图编写一个函数,将内容附加到一个值数组中,然后打印出来,但调用我的函数后打印出来时,它会返回uu lldb_expr_444.taste?! 这是我的密码:

  // Playground - noun: a place where people can play

import UIKit

struct taste {
var TheName = "blankName"

var TheDesc = "blankDesc"
}




var data = [taste]()


func addFruit(name:String,desc:String) {
data.append(taste(TheName: name as String, TheDesc: desc as String))


}

addFruit("cherry", "sweet")

println(data)

我做错了什么?

您试图访问函数中的数据,但它已在函数外部声明

解决这个问题的一种方法是创建一个类,其中数组作为类变量,addFruit作为类的函数

否则,您可以将数组作为addFruit函数的参数传递,以便能够在函数内部修改它。为了打印数组,可以对其进行迭代

var data:[taste]

func addFruit(name:String, desc:String, inout fruitArray:taste) {
    fruitArray.append(taste(TheName: name as String, TheDesc: desc as String))
}

addFruit("cherry", "sweet", &data)

for item in data{
    println(item)
}

您需要采用可打印协议并实现返回文本结构表示的description computed变量

struct taste: Printable {

  var TheName = "blankName"
  var TheDesc = "blankDesc"

  var description: String {
    return "TheName: \(TheName); TheDesc: \(TheDesc)"
  }
}

你不应该用大写字母来命名变量