Утечка памяти NSLinguisticTagger

Я играл в Xcode 4.2 с новым NSLinguisticTagger от iOS 5.0. Моя цель с этой функцией – взять запись в адресной книге, а затем выплюнуть составное имя как NSString, похожее на то, что делает ABRecordCopyCompositeName, но с учетом порядка именования для восточноазиатских языков и венгерского (последнее первое, а не первое ). Вот функция:

NSString *text = [self getLocalizedFullNameOfRecord:[contacts objectAtIndex:indexPath.section]; - (NSString *) getLocalizedFullNameOfRecord:(ABRecordRef) person { NSString *firstName = ABRecordCopyValue(person, kABPersonFirstNameProperty); NSString *middleName = ABRecordCopyValue(person, kABPersonMiddleNameProperty); NSString *lastName = ABRecordCopyValue(person, kABPersonLastNameProperty); NSString *prefix = ABRecordCopyValue(person, kABPersonPrefixProperty); NSString *suffix = ABRecordCopyValue(person, kABPersonSuffixProperty); NSString *fullName = @""; __block BOOL Asian; // Apologies to all Hungarians who aren't actually Asian __block NSArray *asianLanguages = [NSArray arrayWithObjects:@"zh-Hant", @"zh-Hans", @"ja", @"ko", @"hu", @"vi", nil]; [firstName enumerateLinguisticTagsInRange:NSMakeRange(0, firstName.length) scheme: NSLinguisticTagSchemeLanguage options: NSLinguisticTaggerOmitWhitespace orthography: nil usingBlock:^(NSString *tag, NSRange tokenRange, NSRange sentenceRange, BOOL *stop){ if ([asianLanguages containsObject:tag]) Asian = YES; else Asian = NO; }]; if(prefix) fullName = [fullName stringByAppendingFormat:@"%@ ", prefix]; if(Asian && lastName) fullName = [fullName stringByAppendingFormat:@"%@ ", lastName]; else if(firstName) fullName = [fullName stringByAppendingFormat:@"%@ ", firstName]; if(middleName) fullName = [fullName stringByAppendingFormat:@"%@ ", middleName]; if(Asian && firstName) fullName = [fullName stringByAppendingFormat:@"%@ ", firstName]; else if(lastName) fullName = [fullName stringByAppendingFormat:@"%@ ", lastName]; if(suffix) fullName = [fullName stringByAppendingFormat:@"%@", suffix]; [firstName release]; [middleName release]; [lastName release]; [prefix release]; [suffix release]; return fullName; } 

Инструменты говорят мне, что я утечка от 16 до 32 байт с каждой итерацией этой функции, на enumerateLinguisticTagger (а не на части блоков, по-видимому). Поскольку онлайн-ресурсы для NSLinguisticTagger ограничены ссылкой на класс и одним учебным пособием, я понятия не имею, где и как начать поиск утечки.

Помоги пожалуйста?

У меня такая же проблема. В моем случае возникли утечки, когда строка имеет разрывы строк (\ n или \ r).

  • drawRect круг и размер и цвет
  • Xcode / iOS5: переместите UIView вверх, когда появится клавиатура
  • Обнаружение изменения фокуса для UITextField
  • CAShapeLayer не нарисован в симуляторе в режиме сетчатки iPad
  • Какой режим потоковой обработки Sqlite для iOS скомпилирован?
  • Версия для iOS5 для раскадровки Facebook
  • Как указать (показать) местоположение пользователя на изображении? IOS
  • Анимация масштаба CALayer для размера слоя, начиная с нижнего левого и верхнего правого
  • UIAlertViewStyleLoginAndPasswordInput с большим количеством текстовых полей?
  • Пользовательская высота UINavigationBar: как настроить просмотр содержимого?
  • Красная строка состояния, показывающая, когда не записывается и приложение в фоновом режиме
  • Давайте будем гением компьютера.