IOS: Как избежать автоматического использования копий при манипулировании большого экземпляра NSString?

У меня есть сценарий в приложении IOS Там, где манипулирование очень большим экземпляром NSString (HTTP-ответ, вверх 11 МБ) приводит к нескольким крупным посредникам, находящимся в памяти сразу, поскольку методы SDK, которые я звоню, возвращают новые экземпляры AutoReleant. Какой лучший подход к употреблению сюда?

Например, предполагая, что , крупнейшая , является AutoReleded NSString экземпляра :

NSArray *partsOfLargeString = [largeString componentsSeparatedByString:separator];

for (NSString *part in partsOfLargeString) {
    NSString *trimmedPart = [part stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

    NSData *data = [trimmedPart dataUsingEncoding:NSUTF8StringEncoding];
}

было бы здорово, если бы были неавтоматические эквиваленты К КомплектующиеПоделительные PPORDSPAREDBYSTRING или stringbytringCharacterShateSet , но я не хочу реализовать их сам.

Для моих знаний нет никакого способа «заставить» выпускать объект, который уже был добавлен в авторелез. Я знаю, что я могу создавать и использовать свой собственный авторелез здесь, но я хотел бы быть чрезвычайно гранулированным и имея авторелезные бассейны, определенно не очень масштабируемый подход.

Любые предложения очень ценятся.

7
задан Bryan Irace 13 September 2011 в 15:17
поделиться