你的位置:首页 > 软件开发 > 操作系统 > 【原】FMDB源码阅读(三)

【原】FMDB源码阅读(三)

发布时间:2016-02-25 18:00:06
【原】FMDB源码阅读(三)本文转载请注明出处 —— polobymulberry-博客园1. 前言FMDB比较优秀的地方就在于对多线程的处理。所以这一篇主要是研究FMDB的多线程处理的实现。而FMDB最新的版本中主要是通过使用FMData ...

【原】FMDB源码阅读(三)

【原】FMDB源码阅读(三)

本文转载请注明出处 —— polobymulberry-博客园

1. 前言


FMDB比较优秀的地方就在于对线程的处理。所以这一篇主要是研究FMDB的多线程处理的实现。而FMDB最新的版本中主要是通过使用FMDatabaseQueue这个类来进行多线程处理的。

2. FMDatabaseQueue使用举例


// 创建,最好放在一个单例的类中FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:aPath];// 使用[queue 
inDatabase
:^(FMDatabase *db) {  [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:1]];  [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:2]];  [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:3]];  FMResultSet *rs = [db executeQuery:@"select * from foo"];  while ([rs next]) {    // …  }}];// 如果要支持事务[queue 
inTransaction
:^(FMDatabase *db, BOOL *rollback) {  [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:1]];  [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:2]];  [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:3]];  if (whoopsSomethingWrongHappened) {    *rollback = YES;    return;  }  // etc…  [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:4]];}];

原标题:【原】FMDB源码阅读(三)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录