cocoachina吧 关注:52贴子:88
  • 1回复贴,共1

iOS sdk 开发中的问题,(求助 谢谢大神)

只看楼主收藏回复

我使用fmdb在自己开发的sdk中创建数据库,但是每次在建表的时候调用fmdb,FMResultSet *resultSet = [db getTableSchema:tableName]; 崩溃表示[FMDatabase getTableSchema:]: unrecognized selector sent to instance 0x126dab3f0',
db饰有值的,在getTableSchema中打断点 根本就不走,
+ (BOOL)createTable
{
FMDatabase *db = [FMDatabase databaseWithPath:[SMSDBHelper dbPath]];
if (![db open]) {
NSLog(@"数据库打开失败!");
return NO;
}
NSString *tableName = NSStringFromClass(self.class);
NSString *columeAndType = [self.class getColumeAndTypeString];
NSString *sql = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS %@(%@);",tableName,columeAndType];
if (![db executeUpdate:sql]) {
return NO;
}
NSMutableArray *columns = [NSMutableArray array];
FMResultSet *resultSet = [db getTableSchema:tableName];
while ([resultSet next]) {
NSString *column = [resultSet stringForColumn:@"name"];
[columns addObject:column];
}
NSDictionary *dict = [self.class getAllProperties];
NSArray *properties = [dict objectForKey:@"name"];
NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"NOT (SELF IN %@)",columns];
//过滤数组
NSArray *resultArray = [properties filteredArrayUsingPredicate:filterPredicate];
for (NSString *column in resultArray) {
NSUInteger index = [properties indexOfObject:column];
NSString *proType = [[dict objectForKey:@"type"] objectAtIndex:index];
NSString *fieldSql = [NSString stringWithFormat:@"%@ %@",column,proType];
NSString *sql = [NSString stringWithFormat:@"ALTER TABLE %@ ADD COLUMN %@ ",NSStringFromClass(self.class),fieldSql];
if (![db executeUpdate:sql]) {
return NO;
}
}
[db close];
return YES;
}


IP属地:河北1楼2016-04-14 22:33回复
    这位仁兄,请问这个问题你解决了吗? 我也遇到了


    IP属地:北京2楼2018-10-29 10:04
    回复