Xcode ipod内存泄漏-使用仪器和ipod时100%泄漏
我在返回时有100%的泄漏[NSString stringWithUTF8String:val];。不知道如何修复它们。我相信只有alloc、retain等可能最终导致内存泄漏。非常感谢您的帮助。Xcode ipod内存泄漏-使用仪器和ipod时100%泄漏,xcode,memory-leaks,Xcode,Memory Leaks,我在返回时有100%的泄漏[NSString stringWithUTF8String:val];。不知道如何修复它们。我相信只有alloc、retain等可能最终导致内存泄漏。非常感谢您的帮助。[NSString-stringWithUTF8String:val]是创建泄漏对象的语句,您需要了解接下来会发生什么 您是否将readTextColumnWithIndex:返回的NSString保留在某个地方 -(NSString*)readTextColumnWithIndex:(int)ind
[NSString-stringWithUTF8String:val]
是创建泄漏对象的语句,您需要了解接下来会发生什么
您是否将readTextColumnWithIndex:
返回的NSString
保留在某个地方
-(NSString*)readTextColumnWithIndex:(int)index {
char* val = (char *)sqlite3_column_text(statement,index);
if (val==NULL) {
return nil;
}
return [NSString stringWithUTF8String:val];
}
}
这就是它的名字。readIntColumn依次调用readTextColumnWithIndex,NSDictionary返回给调用方方法的
-(NSDictionary*)loadDataRow:(SqlQuery*)q {
return [NSDictionary dictionaryWithObjectsAndKeys: [NSString stringWithFormat:@"%d",[q readIntColumn]],
@"TOCID",[q readTextColumn],@"SubChapter_Name",[q readTextColumn],
@"HtmlFileName",[q readTextColumn],@"ImageName",[q readTextColumn],
@"RefsTitleSection",[NSString stringWithFormat:@"%d",
[q readIntColumn]],@"PageId",
nil];
我不确定如何才能释放chap_Arr,因为它处于循环中。我确实在dealloc安全释放了您。但您没有,是吗。
chap_Arr = nil;
while([query step]) {
ChapName = [query readTextColumn];
chap_Arr = [mData objectForKey:ChapName];
if (!chap_Arr) {
chap_Arr = [[[NSMutableArray alloc] init] autorelease];
[mData setObject:chap_Arr forKey:ChapName];
}
[chap_Arr addObject:[self loadDataRow:query]];
}