嘿,我有一个关于将数据插入sqlite数据库的问题。我想创建用于将数据插入sqlite数据库的通用类。所以我写了一个像这样的方法:
-(void)saveData:(char)sqlstmnt andValues:(NSArray *)Values {
char *sql= &sqlstmnt;
sqlite3_prepare_v2(database, sql, -1, &statement, NULL);
}
现在我的问题是给定的数组“值”可以由不同的类发送,并且每次调用此方法时该数组的内容都是不同的。它包含int,bool,float,text。那么是否有一种方法或方法可以“扫描”类型的一部分数据得到? 类似的东西:
if ([Values objectAtIndex:i isINT]) {
sqlite3_bind_int(statement, i, [Values objectAtIndex:i]);
}
if ([Values objectAtIndex:i isFLOAT]) {
sqlite3_bind_float(statement, i, [Values objectAtIndex:i]);
}
if ([Values objectAtIndex:i isAnBOOL]) {
sqlite3_bind_bool(statement, i, [Values objectAtIndex:i]);
}
如果有人可以帮助我,那将是很棒的。
因为我需要它的类型
答案 0 :(得分:1)
id object = ...
if ([object isKindOfClass:[NSString class]]) {
// object is a string
}
else if ([object isKindOfClass:[NSNumber class]]) {
if (strcmp([object objCType], @encode(BOOL)) == 0) {
// bool
}
else if (strcmp([object objCType], @encode(int)) == 0) {
// int
}
else if (strcmp([object objCType], @encode(float)) == 0) {
// float
}
else if (strcmp([object objCType], @encode(double)) == 0) {
// double
}
// and so on
}