與here不一樣的問題。Swift - 從premade sqlite文件填充核心數據
我有一個預製的sqlite文件,它有三列:chapter,verseNumber和verseText。我的核心數據實體的屬性名稱相同。如何從我的sqlite文件填充核心數據庫?
與here不一樣的問題。Swift - 從premade sqlite文件填充核心數據
我有一個預製的sqlite文件,它有三列:chapter,verseNumber和verseText。我的核心數據實體的屬性名稱相同。如何從我的sqlite文件填充核心數據庫?
這裏是我落得這樣做:
@IBAction func getSQLDB (sender: NSButton) {
let documentsFolder = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let path = documentsFolder.stringByAppendingPathComponent("kjv.db")
println(documentsFolder)
let database = FMDatabase(path: path)
if !database.open() {
println("Unable to open database")
return
}
//if let rs = database.executeQuery("SELECT * FROM bible WHERE (book = 'Gen') AND (chapter = '1')", withArgumentsInArray: nil) {
if let rs = database.executeQuery("SELECT * FROM bible WHERE (book = 'Genesis') OR (book = 'Exodus')", withArgumentsInArray: nil) {
while rs.next() {
let content = rs.stringForColumn("content")
let verseNumber: Int! = rs.stringForColumn("verse").toInt()
let chapter: Int! = rs.stringForColumn("chapter").toInt()
let name = rs.stringForColumn("book")
// Loops through all the information from the query and creates a book
makeBook(name, content: content, chapter: chapter, verseNumber: verseNumber)
}
} else {
println("select failed: \(database.lastErrorMessage())")
}
database.close()
}
Core Data無法讀取任意SQLite文件。您將不得不手動將文件轉換爲Core Data數據庫。 Core Data用來從SQLite讀取/寫入的格式是專有的。
您必須直接使用SQLite讀取數據。我建議使用類似FMDB的東西來讀取數據。要將數據放入核心數據存儲區,您應遵循Efficiently Importing Data的指導原則。
對。我怎麼做? – tazboy
你怎麼預建sqlite的文件?它是一個核心數據文件? –
我正在使用[SQLiteBrowser](http://sqlitebrowser.org/)。它不是核心數據文件。我需要使它成爲一個核心數據文件。 – tazboy
檢出FMDB項目。您可以使用它來解析和遍歷sqlite文件中的數據,然後將其保存到Core Data中http://stackoverflow.com/a/17268032/413570 – rodrigoalves