2015-07-10 29 views
1

所以,我有一些信息得到一类变量数据 - 迅速

class Data { 

    var agen = [… ] 
    var tours = [… ] 
    var marseille = [… ] 
    …… 
} 

在另一个视图 - 控制文件data.swift,I M试图从上面这个取回的值。 我可以得到一个特定的值与成功命令:

let entry = data.agen[indexPath.row] 

它的工作,但我会在这个命令等设定的变量,我把这个

var passedValue:String! 
// passedValue coming from a segue from a previous VC 
// passedValue could be "agen", "tours",”marseille” ... 
    let entry = data.passedValue[indexPath.row] 

但它不工作的消息错误告诉我:“数据不具有名为成员‘passedValue’

我怎么能正确设置变量?

+0

data.passedValue只有在Data.swift中定义了Passedvalue时才有用!否则显示错误“数据没有名为”passedValue“的成员 –

+0

passedValue将是Data中的变量之一(例如,”agen“,”tours“,”marseille“或...)。好吗?我需要在数据上声明var passedValue,我需要在这个变量中声明什么? – Hugo75

回答

0

约略有不同是什么耳鼻喉科语法

class Data { 

    var agen = ["A","B","C"] 
    var tours = ["D","E"] 
    var marseille = ["F","G","H"] 

    subscript(index: String) -> [String]! { 
     switch index { 
      case "agen" : return agen 
      case "tours" : return tours 
      case "marseille" : return marseille 
      default: return [] 
     } 
    } 
} 

let key = "agen" 
let data = Data() 
print(data[key][1]) 

(也许是为了多一点错误教授)

0

其他的解决方案是创建类/结构的“阿根”,“旅游”等 并将其设置在数据对象

class Data { 

    var agen = [Agen(title), Agen(title2)] 
    var tours = [Tour(title), Tour(title2)] 
    …… } 

因为,可能以后要显示有关的tableView对象的一些信息,所以你可以是这样的:

title.text = tour.title 
subtitle.text = tour.placeName 
imageView.image = tour.photos[1]