【发布时间】:2023-03-20 07:50:01
【问题描述】:
我遇到了内存泄漏问题。仪器显示行“pagamento_”是一个malloc。我不知道如何解决这个问题。
我有以下代码: * dados 是 NSMutableArray,我在其他地方分配...并在 dealloc 中释放。
NSString *path = [self caminho];
if (sqlite3_open([path UTF8String], &Banco) == SQLITE_OK){
if (sqlite3_prepare_v2(Banco, [sql UTF8String], -1, &stmt, NULL) == SQLITE_OK) {
int row = sqlite3_step(stmt);
while(row == SQLITE_ROW) {
...
if([tabela isEqual:@"Pagamento"]){
pagamento_ = [[Pagamento alloc]init];
pagamento_.codigo = sqlite3_column_int(stmt, 0);
pagamento_.codNomePgto = sqlite3_column_int(stmt, 1);
pagamento_.codCategoria = sqlite3_column_int(stmt, 2);
pagamento_.vencimento = [NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 3)];
pagamento_.repeticaoPagamento = [NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 4)];
pagamento_.dataTermino = [NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 5)];
pagamento_.vctoFDS = [NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 6)];
pagamento_.valorPrevisto = [NSString stringWithFormat:@"%4.2f",sqlite3_column_double(stmt, 7)];
pagamento_.valorPago = [NSString stringWithFormat:@"%4.2f",sqlite3_column_double(stmt, 8)];
pagamento_.dataPgto = [NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 9)];
pagamento_.anotacoes =[NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 10)];
pagamento_.debitoAutomatico = [NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 11)];
pagamento_.nome = [NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 12)];
pagamento_.numSerie = sqlite3_column_int(stmt, 13);
pagamento_.codFavorecido = sqlite3_column_int(stmt, 14);
pagamento_.favorecido =[NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 15)];
pagamento_.valor = [NSString stringWithFormat:@"%4.2f",sqlite3_column_double(stmt, 16)];
[dados addObject:pagamento_];
[pagamento_ release];
}
row = sqlite3_step(stmt);
}
sqlite3_finalize(stmt);
sqlite3_close(Banco);
return [dados copy];
有人知道我如何解决这个问题吗? 谢谢
【问题讨论】:
标签: iphone objective-c memory-leaks