在Swift中分配字符串数组时出错

时间:2015-05-12 05:54:31

标签: ios iphone swift

我正在以编程方式呈现一个视图控制器,我正在使用存储在我的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]

3 个答案:

答案 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] StringgameGAMETABLEDATA[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]]