如何在Swift中将UITableView的单元格文本设置为数据库单元格的内容?

里斯·摩根(Rhys Morgan)

我正在使用Swift创建一个iOSPokémon数据库应用程序,用于我的A2计算课程。在进行此项目之前,我没有使用过Swift,因此我在教自己使用相关示例,希望这些示例可以从中复制和粘贴。

我正在使用Xcode 6.1.1和Stephen CelisSQLite.swift库

一种这样的测试是生成一个UITableView,它可以从我预先存在的,预先填充的数据库中读取。

我设法获得了UITableView来创建所有单元格-并将detailTextLabel设置为indexPath(加上1,所以它从1开始,在721处结束,而不是从0开始并在720结束)。所以我桌上有721个单元格就好了。

但是,我似乎无法让每个单元格的textLabel显示正确的数据。相反,它为每个单元格显示“ SQLite.Expression”。

在ViewController.swift文件的ViewController类上方,我有

let db = Database("/Users/rhysmorgan/Documents/Coding/DatabaseLoadTest/Pokémon Database.sqlite", readonly: true)
let pokemonTable = db["Pokémon"]
let name = Expression<String>("PokéName")
let gen = Expression<Int>("Generation")

在主tableView函数中,我有

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cellIdentifier = "Cell"
    let rowno: Int = indexPath.row + 1
    let formatter = NSNumberFormatter(); formatter.minimumIntegerDigits = 3
    let formattedrowno = formatter.stringFromNumber(rowno)
    let pokemonname = pokemonTable[name]


    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as UITableViewCell

        cell.textLabel?.text = "\(pokemonname)"
        cell.detailTextLabel?.text = "\(formattedrowno!)"

    return cell
}

有人可以帮助我吗?在此先感谢!

编辑:我设法通过包装使它从第一行显示正确的值

cell.textLabel?.text = "\(pokemonname)"
cell.detailTextLabel?.text = "\(formattedrowno!)"

在一个

for pokemon in pokemonTable {
/*insert above lines*/
}

循环并添加

println(pokemon[name])

生成每条记录,并打印其“PokéName”列数据。然后,它又重复了13次。因此,它一直将第一个记录的“PokéName”列数据打印到第721个列的“PokéName”数据,然后循环回到第一个并再次重复。但仍然,tableview的标签文本没有更新。

斯蒂芬斯利斯

正如您在编辑中发现的那样,必须执行查询才能访问基础数据,这是在运行forin循环时发生的无需调用forin,您可以将数据存储在内存中,例如

let data = Array(pokemonTable)
let cellIdentifier = "Cell"
lazy var formatter: NSNumberFormatter = {
    let formatter = NSNumberFormatter()
    formatter.minimumIntegerDigits = 3
    return formatter
}()

func tableView(
    tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath
) -> UITableViewCell {
    let idx = indexPath.row
    let rowNo = formatter.stringFromNumber(idx + 1)
    let pokemonName = data[idx][name]

    let cell = tableView.dequeueReusableCellWithIdentifier(
        cellIdentifier, forIndexPath: indexPath
    ) as UITableViewCell

    cell.textLabel?.text = pokemonName
    cell.detailTextLabel?.text = rowNo

    return cell
}

在这种情况下,我们只执行一次SQL查询,将所有行存储在一个data数组中(请参见第一行),然后在tableView:cellForRowAtIndexPath:方法中访问该数组


在编辑之前,为了完整起见,请看以下这一行:

let pokemonname = pokemonTable[name]

这是通过使用您先前定义的SQL标识符对表名添加子脚本来创建嵌套的SQL标识符。在这种情况下:

"Pokémon"."PokéName"

请参阅文档的“列名间隔”部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在Swift中将新单元格插入UITableView

来自分类Dev

如何在UITableView静态单元格中动态更改单元格高度

来自分类Dev

在Swift上创建UITableView单元格

来自分类Dev

从每个UITableView单元格获取数据Swift

来自分类Dev

从每个UITableView单元格获取数据Swift

来自分类Dev

如何在UITableView的单元格之间添加分隔符单元格/ uiview?

来自分类Dev

在UItableView中对单元格重新排序,并将(新顺序)插入数据库

来自分类Dev

UITableView将多个单元格设置为选中状态?

来自分类Dev

如何在Swift中将值从自定义单元格设置/传递给ViewController

来自分类Dev

在UItableView单元格中适合文本

来自分类Dev

Swift:清除UITableView单元格

来自分类Dev

如何在UITableView中检测单元格选择-Swift

来自分类Dev

如何在Excel中根据其他单元格的内容为一个单元格创建文本内容?

来自分类Dev

Swift:如何在包含多个单元格的TableViewController中设置动态单元格高度

来自分类Dev

如何在Excel VBA中将单元格范围设置为If语句的条件

来自分类Dev

如何在googleAppcript中将单元格的CriteriaType设置为Date?

来自分类Dev

如何在Excel中将单元格的文本内容引用为单独的值

来自分类Dev

设置添加在uitableview单元格中的uilabel的文本

来自分类Dev

如何在MS Excel中将基于公式的单元格设置为只读?

来自分类Dev

在MSExcel中将特定的单元格设置为只读

来自分类Dev

如何在WPF中将标签的内容设置为数据库表单元格?

来自分类Dev

如何在xamarin.forms中将背景图像设置为输入单元格

来自分类Dev

如何在数据库单元格中插入卡的范围

来自分类Dev

如何将excel单元格值转换为字符串类型?在excel中将单元格设置为文本类型不起作用

来自分类Dev

Firebase 数据库到 UITableView 单元格问题

来自分类Dev

带有 Firebase 数据库的 UITableView 中的多个自定义单元格

来自分类Dev

如何在具有基本样式的表格视图单元格中将图像设置为右侧

来自分类Dev

如何遍历 a 列中的单元格以从每个单元格中的数据库返回值

来自分类Dev

如何从uitableview单元格中删除单元格

Related 相关文章

  1. 1

    如何在Swift中将新单元格插入UITableView

  2. 2

    如何在UITableView静态单元格中动态更改单元格高度

  3. 3

    在Swift上创建UITableView单元格

  4. 4

    从每个UITableView单元格获取数据Swift

  5. 5

    从每个UITableView单元格获取数据Swift

  6. 6

    如何在UITableView的单元格之间添加分隔符单元格/ uiview?

  7. 7

    在UItableView中对单元格重新排序,并将(新顺序)插入数据库

  8. 8

    UITableView将多个单元格设置为选中状态?

  9. 9

    如何在Swift中将值从自定义单元格设置/传递给ViewController

  10. 10

    在UItableView单元格中适合文本

  11. 11

    Swift:清除UITableView单元格

  12. 12

    如何在UITableView中检测单元格选择-Swift

  13. 13

    如何在Excel中根据其他单元格的内容为一个单元格创建文本内容?

  14. 14

    Swift:如何在包含多个单元格的TableViewController中设置动态单元格高度

  15. 15

    如何在Excel VBA中将单元格范围设置为If语句的条件

  16. 16

    如何在googleAppcript中将单元格的CriteriaType设置为Date?

  17. 17

    如何在Excel中将单元格的文本内容引用为单独的值

  18. 18

    设置添加在uitableview单元格中的uilabel的文本

  19. 19

    如何在MS Excel中将基于公式的单元格设置为只读?

  20. 20

    在MSExcel中将特定的单元格设置为只读

  21. 21

    如何在WPF中将标签的内容设置为数据库表单元格?

  22. 22

    如何在xamarin.forms中将背景图像设置为输入单元格

  23. 23

    如何在数据库单元格中插入卡的范围

  24. 24

    如何将excel单元格值转换为字符串类型?在excel中将单元格设置为文本类型不起作用

  25. 25

    Firebase 数据库到 UITableView 单元格问题

  26. 26

    带有 Firebase 数据库的 UITableView 中的多个自定义单元格

  27. 27

    如何在具有基本样式的表格视图单元格中将图像设置为右侧

  28. 28

    如何遍历 a 列中的单元格以从每个单元格中的数据库返回值

  29. 29

    如何从uitableview单元格中删除单元格

热门标签

归档