今天在使用FMDB时报了sqlite3_step (21: out of memory) rs这样一个错误。
if ([_DB open]) {
NSString *sql=[NSString stringWithFormat:@"SELECT * FROM %@",tablename];
FMResultSet *resultSet=[_DB executeQuery:sql];
else if ([tablename isEqualToString:@"WXZ"]){
if (_WXZModelContents.count==0) {
FMResultSet *resultSet2=[_DB executeQuery:sql];
while ([resultSet next]) {<span style="color:#ff0000;">//错误出现在这里,错误的将resultSet2写作了resultSet</span>
}
}
[resultSet2 close];
}
while ([resultSet next]) {
}
}
[resultSet close];
}
所以这个错误就是出现在多个查询时,使用错误导致。因为在第一次循环查询完毕后,列表已经被查完了,再执行[resultSet next]操作就会报这个错误,类似于数组溢出一样。