【发布时间】:2011-06-04 08:24:29
【问题描述】:
谁能帮我解释一下为什么这段代码会泄漏,我们该如何处理?
const char *sqlStatement = "SELECT * FROM VIOLATIONS_TBL";
sqlite3_stmt *compiledStatement;
if (sqlite3_prepare(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
while (sqlite3_step(compiledStatement) == SQLITE_ROW) {
NSString *recSTR=[[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
[self.pickerList addObject:recSTR];
[recSTR release];
recSTR=nil;
}
}
recSTR 在这种情况下会泄漏,我已经尝试了下面提到的所有解决方案,但都没有奏效 提前感谢
【问题讨论】:
-
pickerList 是一个数组数组,内部数组包含一个字符串。因此 tempRowArray 的保留计数为 1,否则 pickerList 将具有指向无效引用的指针。释放或清除 pickerList 应该释放所有 tempRowArrays。哪里漏了?
标签: iphone memory memory-leaks