Memory sqlite中的内存泄漏
每次我连接到sqlite时,都会创建并保留一个对象,下面是用于连接到db的代码Memory sqlite中的内存泄漏,memory,memory-leaks,Memory,Memory Leaks,每次我连接到sqlite时,都会创建并保留一个对象,下面是用于连接到db的代码 + (void) getInitialDataToDisplay:(NSString *)dbPath :(NSString *)searchtext{ MashahirAppDelegate *appDelegate = (MashahirAppDelegate *)[[UIApplication sharedApplication] delegate]; NSString *cat=[[[NS
+ (void) getInitialDataToDisplay:(NSString *)dbPath :(NSString *)searchtext{
MashahirAppDelegate *appDelegate = (MashahirAppDelegate *)[[UIApplication sharedApplication] delegate];
NSString *cat=[[[NSString alloc]initWithFormat:@"%@%@%@",@"-",[MashahirAppDelegate catid],@"-"]autorelease];
if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) {
NSString *query=[[NSString alloc]initWithFormat:@"select ID, Name from Profile where name like '%@%@%@%@%@",@"%",searchtext,@"%' and ParentCat like '%",cat,@"%' order by name"];
const char *sql = [query UTF8String ];
[query release];
sqlite3_stmt *selectstmt;
if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK) {
while(sqlite3_step(selectstmt) == SQLITE_ROW) {
NSInteger primaryKey = sqlite3_column_int(selectstmt, 0);
MashahirDB *MashahirDBObj = [[MashahirDB alloc] initWithPrimaryKey:primaryKey];
MashahirDBObj.Name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)];
[appDelegate.MashahirArray addObject:MashahirDBObj];
[MashahirDBObj release];
}
}
sqlite3_finalize(selectstmt);
}
sqlite3_close(database);
}
这是一张来自仪器的图片:
您链接的图片没有显示任何内存泄漏,这是分配详细信息,您看到这些分配是正常的。是,但每次连接到db 1对象时,都会添加到Malloc 51.00k和总字节increase@DreaomOfMirrors:欢迎来到SO,感谢您对帮助回答此问题表现出兴趣。通常,当我们回答一个人的问题时,我们会在问题上留下评论。答案通常保留为原始问题的答案。@Aren:谢谢你的建议,我想我不能发表任何评论,如果不是回应其他评论的话。也许我错了,对不起。@user731189:欢迎来到SO。如果你有兴趣从社区获得更好的答案和帮助,你可以通过清楚地定义你的问题和向人们提出清晰简洁的问题来帮助自己解决问题。“这不起作用”&代码块通常很难调试,并且可能更难获得帮助。