Я создал собственную категорию NSString, которая позволяет мне находить все строки между двумя другими строками. Теперь я сталкиваюсь с проблемой обнаружения большого количества килобайт, вытекающих из моего скрипта. Пожалуйста, смотрите код ниже:
#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];
Выпуск второго списка вручную вызывает исключение.
Заранее спасибо!