不要使用CoreData「從sqlite數據庫中獲取數據」。如果您需要「從sqlite數據庫獲取數據」,請使用FMDB或類似軟件。 FMDB是iOS的sqlite3的一個包裝。您應該能夠將您的select
聲明正確地複製幷包裝到FMDB中。
使用CoreData但在SQL語言中思考只會造成混淆。如果您打算使用CoreData,那麼最好不要理睬CoreData將sqlite數據庫用作持久性存儲並忘記了解SQL語言的所有知識。
CoreData是一個對象圖框架而不是數據庫接口。它恰好將數據存儲到sqlite數據庫作爲默認值,但從程序員的角度來看,用法是以對象的形式表示的。它不是以行和表格的形式出現的。
回到FMDB。在那裏,打開數據庫有:
FMDatabase *theDatabase = [FMDatabase databaseWithPath:pathToDB];
存儲行與一個select
語句檢索:
while ([setOfRows next]) {
NSLog(@"%d %@ %@ %f", // simply print to the console
[rs intForColumn:@"integerColumn"],
[rs stringForColumn:@"attribute"],
[rs dateForColumn:@"dateColumn"],
[rs doubleForColumn:@"doubleValue"]);
}
:
FMResultSet *setOfRows = [db executeQuery:@"select * from tableName where attribute = ?", @"some criteria'"];
然後通過檢索到的行使用while
迭代
你應該能夠保留所有的工作在android下設計你的數據庫佈局。只需包裝訪問部分。有關語法的更多信息,請訪問github頁面,網址爲FMDB
感謝您的回覆! CoreData是如何工作的簡單解釋?像類/物體的打車/工廠類比? 還是那些東西超出簡單的解釋? – selytch 2013-02-18 18:18:46
我不知道簡單的解釋。那裏的大多數教程都試圖掩蓋太多的方式,從而使其變得相當複雜。 – Olaf 2013-02-19 09:34:57