NSString: проблемы EOL и rangeOfString - PullRequest
1 голос
/ 11 июня 2010

Может кто-нибудь сказать мне, если я что-то здесь упускаю ... Я пытаюсь проанализировать отдельные объекты JSON из потока данных. Поток данных буферизуется в обычной строке NSString, а отдельные объекты JSON обозначаются маркером EOL.

if([dataBuffer rangeOfString:@"\n"].location != NSNotFound) {
  NSString *tmp = [dataBuffer stringByReplacingOccurrencesOfString:@"\n" withString:@"NEWLINE"];
  NSLog(@"%@", tmp);
 }

Приведенный выше код выдает "...} NEWLINE {...", как и ожидалось. Но если я изменю @ "\ n" в приведенном выше операторе if на @ "} \ n", я ничего не получу.

1 Ответ

2 голосов
/ 11 июня 2010

Почему вы не используете - (NSArray *)componentsSeparatedByString:(NSString *)separator?Вы можете задать ему разделитель @"\n", и в результате вы получите удобный массив строк, представляющих ваши отдельные строки JSON, которые вы можете затем перебрать.'вы можете сделать данные JSON недействительными.Просто разбейте его и передайте в библиотеку JSON.После '}' может легко стоять завершающий пробел, который вызывает проблему, которую вы наблюдаете.

...