我创建了一个自定义 NSString 类别,它可以让我找到其他两个字符串之间的所有字符串。我现在遇到的问题是发现我的脚本中有很多 kB 泄漏。请看下面的代码:
#import "MyStringBetween.h"
@implementation NSString (MyStringBetween)
-(NSArray *)mystringBetween:(NSString *)aString and:(NSString *)bString;
{
NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init];
NSArray *firstlist = [self componentsSeparatedByString:bString];
NSMutableArray *finalArray = [[NSMutableArray alloc] init];
for (int y = 0; y < firstlist.count - 1 ; y++) {
NSString *firstObject = [firstlist objectAtIndex:y];
NSMutableArray *secondlist = [firstObject componentsSeparatedByString:aString];
if(secondlist.count > 1){
[finalArray addObject:[secondlist objectAtIndex:secondlist.count - 1]];
}
}
[autoreleasepool release];
return finalArray;
}
@end
我承认我不太擅长释放对象,但我相信 NSAutoreleasePool 会为我处理事情。
泄漏的行:
NSMutableArray *secondlist = [firstObject componentsSeparatedByString:aString];
手动释放 secondlist 会引发异常。
提前致谢!