Преобразование между NSData и NSString безопасно, если вы выполняете преобразование с оригинальной кодировкой.
// example: to NSData and back assuming the original message uses UTF-8
NSData *data = [NSData dataWithBytes:[message UTF8String] length:[message lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
NSString *string = [[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:NSUTF8StringEncoding];
Анализ XML как строки будет работать только с простыми документами. Если ваша структура XML не изменяется, если элементы, которые вы ищете, уникальны, если содержимое состоит только из символов, если в середине нет разделов CDATA, если нет пространств имен, вы в безопасности. В противном случае ваш код будет легко запутаться, пытаясь переварить XML. Будет надежнее, если и создатель, и клиент документа будут соблюдать правила, установленные стандартом XML.
Если за всем этим вы беспокоитесь о сложности, легко работает с XML, используя XPath . Если вы беспокоитесь о скорости, возможно, вы можете переключиться на более быстрый формат, например JSON, если вы контролируете генерацию XML.