次のコード:
-(NSArray *)getContentsWithContextTypes:(NSArray *)contextTypes
contextData:(NSArray *)contextData
{
__block NSString *query = @"SELECT * FROM Texts_original1 WHERE ";
[contextData enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSString *attributeName = [self.contextTypeToDBQueryTexts
objectForKey:contextTypes[idx]];
query = [query stringByAppendingFormat:@"%@ = \"%@\"", attributeName, obj];
if(idx != contextData.count - 1)
{
query = [query stringByAppendingString:@" AND "];
}
}];
[self.db open];
FMResultSet *results = [self.db executeQuery:query];
NSMutableArray *array = [NSMutableArray array];
while([results next])
{
Content *content = [[TextualContent alloc] initWithResults:results];
[array addObject:content];
}
[self.db close];
return array;
}
実行すると、次のエラーが生成されます。
sqlite3_step の呼び出しエラー (21: メモリ不足) rs
ループの途中で発生します。33 の結果があるはずです。17 の後、そのエラーが発生し、ループが終了します。何か案は?ありがとう。