我正在以编程方式呈现一个视图控制器,我正在使用存储在我的SQL(gameGAMETABLEDATA)中的字符串数组值来更改字符串数组的值。我坚持这个错误“不能将类型'String'的值赋给类型[String]的值”。我不确定为什么会这样。当我println(gameGAMETABLEDATA [index])时,我得到一个字符串数组,但swift告诉我它不是一个字符串数组。任何帮助将不胜感激。
var gameGAMETABLEDATA: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
let index = indexPath.row
//Error below!!! "Cannot assign a value of type 'String' to value of type [String]"
GameViewController.tableData = gameGAMETABLEDATA[index]
}
println(gameGAMETABLEDATA)[index]返回:
[cricket3.png,cricket1.png,cricket1.png,cricket1.png,cricket1.png,cricket1.png,cricket1.png]
答案 0 :(得分:1)
您的数组声明似乎有误。如下所示。
var gameGAMETABLEDATA: [[String]] = []
override func viewDidLoad() {
super.viewDidLoad()
let index = indexPath.row
//Error below!!! "Cannot assign a value of type 'String' to value of type [String]"
GameViewController.tableData = gameGAMETABLEDATA[index]
}
答案 1 :(得分:0)
gameGAMETABLEDATA
将声明为字符串数组(例如["game 0", "game 1"]
)
gameGAMETABLEDATA[i]
String
是gameGAMETABLEDATA[0] == "game 0"
(遵循我们的示例GameViewController.tableData = gameGAMETABLEDATA
)
如果您需要显示游戏桌数据的所有内容,只需删除此行中的大括号:
let gamesData =
[
["title of game 0", "top score of game 0"],
["title of game 1", "top score of game 1"]
]
如果你需要一些特定的单一游戏数据,你应该使用其他数据结构。像
gamesData[0]
此结构是字符串数组的数组,["title of game 0", "top score of game 0"]
可以访问特定的字符串数组 - 此表达式返回 private final String DUPLICATE_SQL_1="select abc, count(abc)"
+"from table_1"
+"where type= 'NEW'"
+"and trunc(update_date) = trunc(sysdate)"
+"group by abc having count(abc)>1";
ResultSet rs = stmt.executeQuery(DUPLICATE_SQL_1);
答案 2 :(得分:0)
您将一个字符串传递给tableData
属性。你可以传递整个数组:
GameViewController.tableData = gameGAMETABLEDATA
将结果包装在方括号中以将字符串嵌套在数组中:
GameViewController.tableData = [gameGAMETABLEDATA[index]]
或将您的gameGAMETABLEDATA
属性定义为矩阵:
gameGAMETABLEDATA: [[String]]