Inherits from NSObject
Declared in FMDatabasePool.h
FMDatabasePool.m

Overview

Pool of FMDatabase objects.

See also

Warning: Before using FMDatabasePool, please consider using FMDatabaseQueue instead.

If you really really really know what you’re doing and FMDatabasePool is what you really really need (ie, you’re using a read only database), OK you can use it. But just be careful not to deadlock!

For an example on deadlocking, search for: ONLY_USE_THE_POOL_IF_YOU_ARE_DOING_READS_OTHERWISE_YOULL_DEADLOCK_USE_FMDATABASEQUEUE_INSTEAD in the main.m file.

Tasks

Initialization

Keeping track of checked in/out databases

Perform database operations in pool

Class Methods

databasePoolWithPath:

Create pool using path.

+ (instancetype)databasePoolWithPath:(NSString *)aPath

Parameters

aPath

The file path of the database.

Return Value

The FMDatabasePool object. nil on error.

Declared In

FMDatabasePool.h

Instance Methods

countOfCheckedInDatabases

Number of checked-in databases in pool

- (NSUInteger)countOfCheckedInDatabases

Return Value

Number of databases

Declared In

FMDatabasePool.h

countOfCheckedOutDatabases

Number of checked-out databases in pool

- (NSUInteger)countOfCheckedOutDatabases

Return Value

Number of databases

Declared In

FMDatabasePool.h

countOfOpenDatabases

Total number of databases in pool

- (NSUInteger)countOfOpenDatabases

Return Value

Number of databases

Declared In

FMDatabasePool.h

inDatabase:

Synchronously perform database operations in pool.

- (void)inDatabase:(void ( ^ ) ( FMDatabase *db ))block

Parameters

block

The code to be run on the FMDatabasePool pool.

Declared In

FMDatabasePool.h

inDeferredTransaction:

Synchronously perform database operations in pool using deferred transaction.

- (void)inDeferredTransaction:(void ( ^ ) ( FMDatabase *db , BOOL *rollback ))block

Parameters

block

The code to be run on the FMDatabasePool pool.

Declared In

FMDatabasePool.h

inSavePoint:

Synchronously perform database operations in pool using save point.

- (NSError *)inSavePoint:(void ( ^ ) ( FMDatabase *db , BOOL *rollback ))block

Parameters

block

The code to be run on the FMDatabasePool pool.

Discussion

Warning: You can not nest these, since calling it will pull another database out of the pool and you’ll get a deadlock. If you need to nest, use [FMDatabase startSavePointWithName:error:] instead.

Declared In

FMDatabasePool.h

inTransaction:

Synchronously perform database operations in pool using transaction.

- (void)inTransaction:(void ( ^ ) ( FMDatabase *db , BOOL *rollback ))block

Parameters

block

The code to be run on the FMDatabasePool pool.

Declared In

FMDatabasePool.h

initWithPath:

Create pool using path.

- (instancetype)initWithPath:(NSString *)aPath

Parameters

aPath

The file path of the database.

Return Value

The FMDatabasePool object. nil on error.

Declared In

FMDatabasePool.h

releaseAllDatabases

Release all databases in pool

- (void)releaseAllDatabases

Declared In

FMDatabasePool.h