FMDatabaseQueue Error: database is locked

北城以北 提交于 2019-12-05 21:42:23

I have the same issue. I made sharedInstance with global queue

context.h

@interface context : NSObject
{
    FMDatabaseQueue *_queue;
}

+ (context *)sharedInstance;
@property(strong, nonatomic, readwrite) FMDatabaseQueue *queue;
@end

context.m

#import "context.h"

@implementation context

@synthesize queue = _queue;

+ (context *)sharedInstance {
    static dispatch_once_t onceToken;
    static context *instance = nil;
    dispatch_once(&onceToken, ^{
        instance = [[context alloc] init];
    });
    return instance; 
}

- (id)init {
    self = [super init];
    if (self) {
        _queue          = [FMDatabaseQueue databaseQueueWithPath:YOUR_SQLITE_FILE_PATH];

    }
    return self; 
}

@end

How to use it

context *appContext = [context sharedInstance];

[appContext.queue inDatabase:^(FMDatabase *db) {
FMResultSet *results = [db executeQuery:@"SELECT * FROM something"];

if([results next]) {
    NSLog(@"results dump = %@", [results resultDictionary]);
}
[results close];
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!