@@ -456,9 +456,9 @@ - (void)dropAllTable
456
456
NSString *dropTable = [NSString stringWithFormat: @" drop table %@ " , tableName];
457
457
[db executeUpdate: dropTable];
458
458
}
459
+
460
+ [self .createdTableNames removeAllObjects ];
459
461
}];
460
-
461
- [_createdTableNames removeAllObjects ];
462
462
}
463
463
464
464
- (BOOL )dropTableWithClass : (Class )modelClass
@@ -474,7 +474,9 @@ - (BOOL)dropTableWithTableName:(NSString *)tableName
474
474
475
475
BOOL isDrop = [self executeSQL: dropTable arguments: nil ];
476
476
477
+ [_threadLock lock ];
477
478
[_createdTableNames removeObject: tableName];
479
+ [_threadLock unlock ];
478
480
479
481
return isDrop;
480
482
}
@@ -540,10 +542,13 @@ - (void)fixSqlColumnsWithClass:(Class)clazz tableName:(NSString *)tableName
540
542
- (BOOL )_createTableWithModelClass : (Class )modelClass tableName : (NSString *)tableName
541
543
{
542
544
if ([self getTableCreatedWithTableName: tableName]) {
545
+
543
546
// 已创建表 就跳过
547
+ [_threadLock lock ];
544
548
if ([_createdTableNames containsObject: tableName] == NO ) {
545
549
[_createdTableNames addObject: tableName];
546
550
}
551
+ [_threadLock unlock ];
547
552
548
553
[self fixSqlColumnsWithClass: modelClass tableName: tableName];
549
554
return YES ;
@@ -634,10 +639,12 @@ - (BOOL)_createTableWithModelClass:(Class)modelClass tableName:(NSString *)table
634
639
635
640
BOOL isCreated = [self executeSQL: createTableSQL arguments: nil ];
636
641
642
+ [_threadLock lock ];
637
643
if (isCreated) {
638
644
[_createdTableNames addObject: tableName];
639
645
[modelClass dbDidCreateTable: self tableName: tableName];
640
646
}
647
+ [_threadLock unlock ];
641
648
642
649
return isCreated;
643
650
}
@@ -1042,9 +1049,11 @@ - (BOOL)insertBase:(NSObject *)model
1042
1049
NSString *db_tableName = model.db_tableName ? :[modelClass getTableName ];
1043
1050
1044
1051
// 检测是否创建过表
1052
+ [_threadLock lock ];
1045
1053
if ([_createdTableNames containsObject: db_tableName] == NO ) {
1046
1054
[self _createTableWithModelClass: modelClass tableName: db_tableName];
1047
1055
}
1056
+ [_threadLock unlock ];
1048
1057
1049
1058
// --
1050
1059
LKModelInfos *infos = [modelClass getModelInfos ];
@@ -1143,9 +1152,11 @@ - (BOOL)updateToDBBase:(NSObject *)model where:(id)where
1143
1152
NSString *db_tableName = model.db_tableName ? :[modelClass getTableName ];
1144
1153
1145
1154
// 检测是否创建过表
1155
+ [_threadLock lock ];
1146
1156
if ([_createdTableNames containsObject: db_tableName] == NO ) {
1147
1157
[self _createTableWithModelClass: modelClass tableName: db_tableName];
1148
1158
}
1159
+ [_threadLock unlock ];
1149
1160
1150
1161
LKModelInfos *infos = [modelClass getModelInfos ];
1151
1162
0 commit comments