不要使用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