EGODatabase是一个由Enormego创建的线程安全的Objective SQLite包装器。在我们的应用程序中广泛使用FMDB后,我们发现了很多改进的空间,最大的改进是使其线程安全。EGODatabase使用了来自FMDB的一些代码,但大部分是完全重写的,使用了结果集和行对象。FMDB和EGODatabase之间主要的不同在于选择数据时,EGODatabase使用EGODatabaseRow类填充从SQLite获取的数据,而不是像FMDB那样保留SQLite结果。
EGODatabase经过测试,可以与所有版本的iOS和Mac OS X 10.5+兼容。
这是一个类,您将在这里打开您的SQLite数据库文件并通过它执行查询。
这是EGODatabase在执行"executeQuery:"时返回的类。它支持快速枚举,并包含用于列名、列类型、行和如果有任何错误则包含错误的属性。
EGODatabaseResult包含的每个对象都是EGODatabaseRow。这是每行的原始数据。您将能够根据不同的方法返回特定的类型,如intForColumn:或dateForColumn:。请查看头文件以获取完整的列表。
请查看每个头文件以获取每个方法的全列。
EGODatabase* database = [EGODatabase databaseWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/database.db"]];
EGODatabaseResult* result = [database executeQueryWithParameters:@"SELECT * FROM `posts` WHERE `user_id` = ?", @(10), nil];
for(EGODatabaseRow* row in result) {
NSLog(@"Subject: %@", [row stringForColumn:@"subject"]);
NSLog(@"Date: %@", [row dateForColumn:@"date"]);
NSLog(@"Views: %d", [row intForColumn:@"views"]);
NSLog(@"Message: %@", [row stringForColumn:@"message"]);
}
请记住将libsqlite3.dylib链接到您的项目中!