2015-05-09 62 views
1

我试图把3个值在夫特编程语言的阵列,并且我发现了一个错误。错误:协议类型值“STRING”的访问成员未实现

下面是代码:

var a = txtSchool.text 
var b = txtDegree.text 
var c = txtYear.text.toInt()   
eduData.append(a, b, c!) 

在另一个文件中的阵列是:

var eduData = [String , String , Int]() 

的Xcode给我一个错误:

accessing members of protocol type value 'String' is unimplemented 

我想存储三个文本框在一个数组,然后我想在一个表格视图中显示它。当我获取变量中的所有值时,并尝试将它们存储在数组中。

什么是错误的意思和我在做什么引起的呢?

回答

3

因为你给的阵列多种类型的持有,斯威夫特推断出你想要的元组的数组:

var eduData = [String, String, Int]() 
let object1 = ("a", "b", 42) 
let object2 = ("c", "d", 33) 
eduData.append(object1) 
eduData.append(object2) 
print(eduData)   // prints [(a, b, 42), (c, d, 33)] 

数组中的每个对象是一个元组:

print(eduData[0].0)  // prints "a" 
print(eduData[0].1)  // prints "b" 
print(eduData[0].2)  // prints 42 
+0

先生,我的数组是在另一个文件 –

+0

先生我只是试过你的方式,但现在它给了我错误:参数#2在呼叫中缺少参数 –

+1

它不是“我的方式”,它是解释为什么你的代码示例给你你得到的错误,以及如何使用你的元组数组的例子。 :) *但是*如果你仍然有错误,这意味着也许你并不需要你的元组数组?在这种情况下,您可以编辑您的问题并添加详细信息,上下文和更多代码;或者用新代码和新错误创建一个新问题。 – Moritz