当你使用 iOS 和 MonoTouch 时,可能需要显示一个 SQLite 表中的数据。虽然你可以通过构建 UITableViewController 来完成数据显示,但是整个过程相当耗时,并且需要相当多的样板代码。Jeffrey Stedfast 找到了一种方法,通过借助 MonoTouch.SQLite 可以将简单的表格绑定减少为一个单个方法。
MonoTouch.SQLite 是一个数据库感知的 UI 库,旨在简化表格数据显示。 SQLiteTableModel 模型类是 MonoTouch.SQLite 的底层基础。该模型提供了现成的带有排序和过滤的基础表格访问,因此当使用它显示简单数据时,你不需要做任何操作。但如果需要使用复杂的 SQL 语句,你可以实现它的子类并重写其中的 SQL 生成方法。
套件(stack)的下一个部分是控制器本身。对于那些还不是 iOS 开发人员的用户,需要知道 Apple 的 UI 库必须严格遵循经典的 MVC 模式。这意味着类似表格的视图需要继承自 UITableViewController 类。MonoTouch.SQLite 通过其子类 SQLiteTableViewController 处理了大部分细节。在示例程序中,你会看到只要实现GetCell 方法即可。
终端用户查找
为了让终端用户更轻松地查找信息,MonoTouch.SQLite 可将用户输入的字符串转换为自定义的SQL where 子句。要做到这一点,用户只要简单地使用特性SQLiteSearchAlias 标记它们的数据模型属性。同一个别名(alias)可使用多次,例如FirstName 和LastName 都可能被标记为别名”name”,而后当用户输入address:“Newton, MA” name:Jane’时,MonoTouch.SQLite 会生成一个where 子句,并在address 列和name 列中查找匹配。
此外,iOS UISearchDisplayController 包装了前面提及的 UITableViewController,使用它可以完成所有的这些工作。
评论