新手求助,内存释放问题
1.删除字符串内特定的字符-(void)delSpace:(NSMutableString *)strSrc delCh:(char)ch
{
int iCur = 0;
while (iCur < [strSrc length]) {
NSString* chr = [strSrc substringWithRange:NSMakeRange(iCur, 1)];
//NSLog(@"count = %d",[chr retainCount]);
char chValue = [chr characterAtIndex:0];
if (chValue == ch) {//找到字符
[strSrc deleteCharactersInRange:NSMakeRange(iCur, 1)];
[chr release];
chr = nil;
continue;
}
iCur++;
[chr release];
chr = nil;
}
}测试结果:内存只增不减,具体见代码我已释放内存。
2.
NSMutableString *x = [[NSMutableString alloc] init];
NSDictionary *temp = [self aa:x];
-(NSDictionary *) aa:(NSString*x)
{
NSDictionary *temp = [NSDictionary dictionaryWithObjectsAndKeys:tempMin,@"start",restCurrent,@"rest",nil];
return temp;
}
aa函数类添加自动释放池,那么temp将会被释放没有返回结果。
如果定义temp为autorelease那么等到整个函数结束时才释放,我想再这个函数结束的时候就将其释放并有结果返回。
3.while()
{
while()
{
NSString* a = [NSString stringWith:@""];
a = [x substringfrom:0];
}
}
如此循环一万次再跳出,执行过程当中内存不断增加,用什么方法让内存增增减减,最后平衡。
初学,望大家指教,谢谢。