函数附加不在swift中工作

时间:2014-12-19 19:25:12

标签: ios swift append

我正在尝试编写一个函数来将事物附加到值数组然后将它们打印出来,但是当我在调用函数后将其打印出来时它会返回__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)

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您需要采用Printable协议并实现返回文本结构表示的描述计算变量。

struct taste: Printable {

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

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

答案 1 :(得分:0)

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

解决此问题的一种方法是创建一个类,其数组作为类变量,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)
}