FMDB 不显示任何东西 - 迅速
Posted
技术标签:
【中文标题】FMDB 不显示任何东西 - 迅速【英文标题】:FMDB not show anything - swift 【发布时间】:2017-02-26 17:32:35 【问题描述】:我想使用我的本地数据库。 为此,我使用FMDB。
1.我将pod 'FMDB'
添加到pod file
然后pod install
2.我将我的数据库拖到我的项目中 (kashanmapDB_upgrade_3-4.db
)。
3.我创建了一个名为DatabaseManager.swift
的类
我的班级:
import Foundation
import FMDB
class DatabaseManager
private let dbFileName = "kashanmapDB_upgrade_3-4.db"
private var database:FMDatabase!
init()
openDatabase()
func openDatabase()
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let dbPath = URL(fileURLWithPath: paths).appendingPathComponent(dbFileName)
let str_path = Bundle.main.resourceURL!.appendingPathComponent(dbFileName).path
let database = FMDatabase(path: str_path)
/* Open database read-only. */
if (!(database?.open(withFlags: 1))!)
print("Could not open database at \(dbPath).")
else
print("opened database")
self.database = database;
func closeDatabase()
if (database != nil)
database.close()
func query(queryString:String)
if let db = database, let q = db.executeQuery(queryString, withArgumentsIn: nil)
while q.next()
let data = q.string(forColumn: "id")
// Do whatever here with fetched data, usually add it to an array and return that array
print("data a a \(data)")
在我的控制器中,我为我的类创建了一个变量并调用了我的函数:
let db = DatabaseManager()
// MARK: - View Lifecycle
override func viewDidLoad()
super.viewDidLoad()
createPageViewController()
setupPageControl()
db.openDatabase()
db.query(queryString: "select * from Tags")
但我的控制台没有显示任何内容。我的问题在哪里?
【问题讨论】:
数据库打开成功了吗? 没有打印像Could not open database at
或opened database
这样的东西
先把你的数据库复制到文档目录然后打开
【参考方案1】:
试试这些步骤:
首先要卸载旧应用。
从 Xcode 和 finder -> 项目目录中删除旧的“kashanmapDB_upgrade_3-4.db”文件。
通过确保选中复制所选项目
再次复制/添加“kashanmapDB_upgrade_3-4.db”文件 OR
在 Xcode 中 -> 转到应用程序项目 -> 链接框架和库 -> 单击 “+” 按钮将“kashanmapDB_upgrade_3-4.db”文件添加到您的项目中
在 Xcode 项目 - 产品 -> 清理项目和 然后->构建->运行。
大功告成……!!!
【讨论】:
以上是关于FMDB 不显示任何东西 - 迅速的主要内容,如果未能解决你的问题,请参考以下文章